I wrote:
Setting Config_OD gets rid of a _LOT_ of spurious CPLD interrupts,
but also decreases overall performance a bit.
Signed-off-by: Manuel Lauss <manuel.lauss@xxxxxxxxxxxxxx>
[...]
diff --git a/arch/mips/alchemy/devboards/db1200/setup.c
b/arch/mips/alchemy/devboards/db1200/setup.c
index 8876195..a3729c9 100644
--- a/arch/mips/alchemy/devboards/db1200/setup.c
+++ b/arch/mips/alchemy/devboards/db1200/setup.c
@@ -23,6 +23,13 @@ void __init board_setup(void)
unsigned long freq0, clksrc, div, pfc;
unsigned short whoami;
+ /* Set Config_OD (disable overlapping bus transaction):
The bit is called Config[OD] by other Alchemy code.
You just should add your Au1200 revision to
au1xxx_cpu_needs_config_od() in <asm/mach-au1x00.h> so that
plat_mem_setup() automatically sets the bit (just after it calls
board_setup()); Au1200 rev. AC should have it set already...
Forgot to add that if you don't do it, the code in plat_mem_setup() will
clear the bit after you've set it.
WBR, Sergei