[RFC PATCH 3/3] ARM: pxa/pj4: Port problematic pj4 support code to v7/Thumb-2

Eric Miao eric.y.miao at gmail.com
Wed Sep 7 12:18:15 EDT 2011


On Wed, Sep 7, 2011 at 8:59 AM, Dave Martin <dave.martin at linaro.org> wrote:
> The iwmmxt code contains some code to implement a pseudo-ISB, but
> this is not buildable for Thumb-2.
>
> This patch replaces the pseudo-ISB with a real one on v7 and above.
>
> Signed-off-by: Dave Martin <dave.martin at linaro.org>
> ---
>  arch/arm/kernel/pj4-cp0.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/kernel/pj4-cp0.c b/arch/arm/kernel/pj4-cp0.c
> index a4b1b07..5117d9d 100644
> --- a/arch/arm/kernel/pj4-cp0.c
> +++ b/arch/arm/kernel/pj4-cp0.c
> @@ -66,9 +66,13 @@ static void __init pj4_cp_access_write(u32 value)
>
>        __asm__ __volatile__ (
>                "mcr    p15, 0, %1, c1, c0, 2\n\t"
> +#ifdef __LINUX_ARM_ARCH__ >= 7
> +               "isb\n\t"
> +#else
>                "mrc    p15, 0, %0, c1, c0, 2\n\t"
>                "mov    %0, %0\n\t"
>                "sub    pc, pc, #4\n\t"
> +#endif

Haojian,

Could you check internally if isb() will work here as PJ4 is both v6/v7
compatible, and if it's in v7 mode, I guess isb() can be safely used here?

>                : "=r" (temp) : "r" (value));
>  }
>
> --
> 1.7.4.1
>
>



More information about the linux-arm-kernel mailing list