Good Evening,
>> --- a/arch/mips/au1000/common/sleeper.S
>> +++ b/arch/mips/au1000/common/sleeper.S
>> @@ -113,10 +113,11 @@ sdsleep:
>> lw k0, 0x14(sp)
>> mtc0 k0, CP0_CONFIG
>> - /* We need to catch the ealry Alchemy SOCs with
>> + /* We need to catch the early Alchemy SOCs with
>> * the write-only Config[OD] bit and set it back to one...
>> */
>> jal au1x00_fixup_config_od
>> + nop
>> lw $1, PT_R1(sp)
>> lw $2, PT_R2(sp)
>> lw $3, PT_R3(sp)
>> @@ -151,4 +152,5 @@ sdsleep:
>> addiu sp, PT_SIZE
>> jr ra
>> + nop
>> END(save_and_sleep)
>>
> Don't bother doing this if there's no ".set noreorder" around. Assembler
> should do a better job at filling up the delay slot in this case.
heh, my mips assembler skills are extremely rusty :-)
>> diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
>> index 2709675..bb22649 100644
>> --- a/arch/mips/mm/c-r4k.c
>> +++ b/arch/mips/mm/c-r4k.c
>>
>
> [...]
>
>> @@ -1287,20 +1262,18 @@ static void __cpuinit coherency_setup(void)
>> case CPU_R4400MC:
>> clear_c0_config(CONF_CU);
>> break;
>> - /*
>> - * We need to catch the early Alchemy SOCs with
>> - * the write-only co_config.od bit and set it back to one...
>> - */
>> - case CPU_AU1000: /* rev. DA, HA, HB */
>> - case CPU_AU1100: /* rev. AB, BA, BC ?? */
>> - case CPU_AU1500: /* rev. AB */
>> - au1x00_fixup_config_od();
>> - break;
>> case PRID_IMP_PR4450:
>> nxp_pr4450_fixup_config();
>> break;
>> }
>> +
>> +#ifdef CONFIG_MACH_ALCHEMY
>> + {
>> + extern void au1x00_fixup_config_od(void);
>> + au1x00_fixup_config_od();
>> + }
>> +#endif
>> }
>>
>
> I've been thru this before. Ralf will hardly accept #ifdef'ery and extern
> in this file. That's why we have what we have now. :-)
I believe it can be removed entirely from c-r4k.c, the Alchemy
plat_mem_setup and resume code run it too (and earlier).
Thanks for having a look!
Manuel Lauss
|