2018-12-02 11:14:58

by Lubomir Rintel

[permalink] [raw]
Subject: [PATCH] ARM: mmp/mmp2: fix cpu_is_mmp2() on mmp2-dt

cpu_is_mmp2() was equivalent to cpu_is_pj4(), wouldn't be correct for
multiplatform kernels. Fix it by also considering mmp_chip_id, as is
done for cpu_is_pxa168() and cpu_is_pxa910() above.

Moreover, it is only available with CONFIG_CPU_MMP2 and thus doesn't work
on DT-based MMP2 machines. Enable it on CONFIG_MACH_MMP2_DT too.

Note: CONFIG_CPU_MMP2 is only used for machines that use board files
instead of DT. It should perhaps be renamed. I'm not doing it now, because
I don't have a better idea.

Signed-off-by: Lubomir Rintel <[email protected]>
---
arch/arm/mach-mmp/cputype.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-mmp/cputype.h b/arch/arm/mach-mmp/cputype.h
index 446edaeb78a7..a96abcf521b4 100644
--- a/arch/arm/mach-mmp/cputype.h
+++ b/arch/arm/mach-mmp/cputype.h
@@ -44,10 +44,12 @@ static inline int cpu_is_pxa910(void)
#define cpu_is_pxa910() (0)
#endif

-#ifdef CONFIG_CPU_MMP2
+#if defined(CONFIG_CPU_MMP2) || defined(CONFIG_MACH_MMP2_DT)
static inline int cpu_is_mmp2(void)
{
- return (((read_cpuid_id() >> 8) & 0xff) == 0x58);
+ return (((read_cpuid_id() >> 8) & 0xff) == 0x58) &&
+ (((mmp_chip_id & 0xfff) == 0x410) ||
+ ((mmp_chip_id & 0xfff) == 0x610));
}
#else
#define cpu_is_mmp2() (0)
--
2.19.1



2018-12-02 15:54:14

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] ARM: mmp/mmp2: fix cpu_is_mmp2() on mmp2-dt

On Sun, Dec 2, 2018 at 12:12 PM Lubomir Rintel <[email protected]> wrote:
>
> cpu_is_mmp2() was equivalent to cpu_is_pj4(), wouldn't be correct for
> multiplatform kernels. Fix it by also considering mmp_chip_id, as is
> done for cpu_is_pxa168() and cpu_is_pxa910() above.
>
> Moreover, it is only available with CONFIG_CPU_MMP2 and thus doesn't work
> on DT-based MMP2 machines. Enable it on CONFIG_MACH_MMP2_DT too.
>
> Note: CONFIG_CPU_MMP2 is only used for machines that use board files
> instead of DT. It should perhaps be renamed. I'm not doing it now, because
> I don't have a better idea.
>
> Signed-off-by: Lubomir Rintel <[email protected]>

Acked-by: Arnd Bergmann <[email protected]>

I'd suggest adding

Cc: [email protected]

since this fixes bugs on other platforms when CONFIG_MMP2 is enabled
in a multiplatform kernel.

2018-12-03 20:50:21

by Olof Johansson

[permalink] [raw]
Subject: Re: [PATCH] ARM: mmp/mmp2: fix cpu_is_mmp2() on mmp2-dt

On Sun, Dec 02, 2018 at 04:53:07PM +0100, Arnd Bergmann wrote:
> On Sun, Dec 2, 2018 at 12:12 PM Lubomir Rintel <[email protected]> wrote:
> >
> > cpu_is_mmp2() was equivalent to cpu_is_pj4(), wouldn't be correct for
> > multiplatform kernels. Fix it by also considering mmp_chip_id, as is
> > done for cpu_is_pxa168() and cpu_is_pxa910() above.
> >
> > Moreover, it is only available with CONFIG_CPU_MMP2 and thus doesn't work
> > on DT-based MMP2 machines. Enable it on CONFIG_MACH_MMP2_DT too.
> >
> > Note: CONFIG_CPU_MMP2 is only used for machines that use board files
> > instead of DT. It should perhaps be renamed. I'm not doing it now, because
> > I don't have a better idea.
> >
> > Signed-off-by: Lubomir Rintel <[email protected]>
>
> Acked-by: Arnd Bergmann <[email protected]>
>
> I'd suggest adding
>
> Cc: [email protected]
>
> since this fixes bugs on other platforms when CONFIG_MMP2 is enabled
> in a multiplatform kernel.

Applied to fixes with those tags. Thanks!


-Olof