[PATCH] ARM: pxa: fix logic error in PJ4 iWMMXt handling

Eric Miao eric.y.miao at gmail.com
Thu Aug 4 05:28:22 EDT 2011


On Wed, Aug 3, 2011 at 5:26 PM, Lennert Buytenhek
<buytenh at wantstofly.org> wrote:
> This got added in:
>
>        commit ef6c84454f8567d4968c210d7d194fb711ed3739
>        Author: Haojian Zhuang <haojian.zhuang at marvell.com>
>        Date:   Wed Nov 24 11:54:25 2010 +0800
>
>            ARM: pxa: add iwmmx support for PJ4

This looks correct to me. Haojian, you have any comments?

>
> which does:
>
> -       mrc     p15, 0, r2, c15, c1, 0
> -       orr     r2, r2, #0x3                    @ enable access to CP0 and CP1
> -       mcr     p15, 0, r2, c15, c1, 0
> +       @ enable access to CP0 and CP1
> +       XSC(mrc p15, 0, r2, c15, c1, 0)
> +       XSC(orr r2, r2, #0x3)
> +       XSC(mcr p15, 0, r2, c15, c1, 0)
>
> but then later does:
>
> -       mrc     p15, 0, r4, c15, c1, 0
> -       orr     r4, r4, #0x3                    @ enable access to CP0 and CP1
> -       mcr     p15, 0, r4, c15, c1, 0
> +       @ enable access to CP0 and CP1
> +       XSC(mrc p15, 0, r4, c15, c1, 0)
> +       XSC(orr r4, r4, #0xf)
> +       XSC(mcr p15, 0, r4, c15, c1, 0)
>
> Signed-off-by: Lennert Buytenhek <buytenh at laptop.org>
>
> diff --git a/arch/arm/kernel/iwmmxt.S b/arch/arm/kernel/iwmmxt.S
> index 7fa3bb0..194a767 100644
> --- a/arch/arm/kernel/iwmmxt.S
> +++ b/arch/arm/kernel/iwmmxt.S
> @@ -195,10 +195,10 @@ ENTRY(iwmmxt_task_disable)
>
>        @ enable access to CP0 and CP1
>        XSC(mrc p15, 0, r4, c15, c1, 0)
> -       XSC(orr r4, r4, #0xf)
> +       XSC(orr r4, r4, #0x3)
>        XSC(mcr p15, 0, r4, c15, c1, 0)
>        PJ4(mrc p15, 0, r4, c1, c0, 2)
> -       PJ4(orr r4, r4, #0x3)
> +       PJ4(orr r4, r4, #0xf)
>        PJ4(mcr p15, 0, r4, c1, c0, 2)
>
>        mov     r0, #0                          @ nothing to load
> @@ -313,7 +313,7 @@ ENTRY(iwmmxt_task_switch)
>        teq     r2, r3                          @ next task owns it?
>        movne   pc, lr                          @ no: leave Concan disabled
>
> -1:     @ flip Conan access
> +1:     @ flip Concan access
>        XSC(eor r1, r1, #0x3)
>        XSC(mcr p15, 0, r1, c15, c1, 0)
>        PJ4(eor r1, r1, #0xf)
>



More information about the linux-arm-kernel mailing list