Thread (5 messages) 5 messages, 2 authors, 2011-02-10

Re: [PATCH] MIPS: DB1200: Set Config_OD for improved stability.

From: Sergei Shtylyov <hidden>
Date: 2011-02-10 18:16:29

Hello.

Manuel Lauss 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 <redacted>
[...]
quoted hunk ↗ jump to hunk
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...
+	 * This gets rid of a _lot_ of spurious interrupts (especially
+	 * wrt. IDE); but incurs ~10% performance hit in some
+	 * cpu-bound applications.
+	 */
+	set_c0_config(1 << 19);
+
 	bcsr_init(DB1200_BCSR_PHYS_ADDR,
 		  DB1200_BCSR_PHYS_ADDR + DB1200_BCSR_HEXLED_OFS);
 
WBR, Sergei
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help