Patchwork [v2,3/3] ARM: pxa/pj4: Port problematic pj4 support code to v7/Thumb-2

login
register
mail settings
Submitter Eric Miao
Date Sept. 8, 2011, 5:06 p.m.
Message ID <CAMPhdO-JG7yuSP45HH1tvbDoeL27J9onj=LK=8bEw3cea6SW0g@mail.gmail.com>
Download mbox | patch
Permalink /patch/113927/
State New
Headers show

Comments

Eric Miao - Sept. 8, 2011, 5:06 p.m.
On Thu, Sep 8, 2011 at 9:44 AM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Thursday 08 September 2011, Dave Martin wrote:
>>         __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
>>                 : "=r" (temp) : "r" (value));
>>  }
>
> I thought we had concluded that we don't actually need the #else
> path because there is no pre-v7 support for pj4 any more.

Or if isb() works fine, will the below change be cleaner:

linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

Patch

diff --git a/arch/arm/kernel/pj4-cp0.c b/arch/arm/kernel/pj4-cp0.c
index a4b1b07..dc4272d 100644
--- a/arch/arm/kernel/pj4-cp0.c
+++ b/arch/arm/kernel/pj4-cp0.c
@@ -62,14 +62,10 @@  static u32 __init pj4_cp_access_read(void)

 static void __init pj4_cp_access_write(u32 value)
 {
-       u32 temp;
-
        __asm__ __volatile__ (
-               "mcr    p15, 0, %1, c1, c0, 2\n\t"
-               "mrc    p15, 0, %0, c1, c0, 2\n\t"
-               "mov    %0, %0\n\t"
-               "sub    pc, pc, #4\n\t"
-               : "=r" (temp) : "r" (value));
+               "mcr    p15, 0, %0, c1, c0, 2\n\t"
+               : : "r" (value));
+       isb();
 }

_______________________________________________