[PATCH 3/8] ARM: make xscale iwmmxt code multiplatform aware

Arnd Bergmann arnd at arndb.de
Wed Mar 4 06:38:29 PST 2015


On Wednesday 04 March 2015 15:12:02 Robert Jarzmik wrote:
> Arnd Bergmann <arnd at arndb.de> writes:

> 
> I'm not sure I understand this patch fully, so take with caution my comment.
> If I'm not mistaken, the former behavior was for pxa3xx:
>  - cpu_is_xscale() -> false
>  - cpu_is_xsc3() -> true
>  => this implied PMD_BIT4 was set
> 
> With your patch :
>  - cpu_is_xscale() -> true
>  - cpu_is_xsc3() -> true
>  => this implied PMD_BIT4 is not set
> 
> I like the new meaning for cpu_is_*(), but is the change of PMD_BIT4 the goal of
> this patch (the piece in [1]) ?

> > -     if (cpu_architecture() <= CPU_ARCH_ARMv5TEJ && !cpu_is_xscale())
> > +     if (cpu_architecture() <= CPU_ARCH_ARMv5TEJ &&
> > +         !cpu_is_xscale() && !cpu_is_xsc3())
> >               prot |= PMD_BIT4;
> >  
> >       pgd += pgd_index(addr);

I tried to not change the behavior here, and I think you missed this part:

-#if !defined(CONFIG_CPU_XSCALE) && !defined(CONFIG_CPU_XSC3)
+#if !defined(CONFIG_CPU_XSCALE)
 #define        cpu_is_xscale() 0
 #else
-#define        cpu_is_xscale() 1
 ...

This means that previously, cpu_is_xscale() returned true for pxa3xx,
while now it returns false, and I added the "&& !cpu_is_xsc3()" to
keep the logic the same as before.

Does that make sense?

	Arnd



More information about the linux-arm-kernel mailing list