sh: reduce Migo-R smc91x overruns
authorMagnus Damm <damm@igel.co.jp>
Thu, 9 Oct 2008 09:41:34 +0000 (18:41 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 20 Oct 2008 02:38:35 +0000 (11:38 +0900)
Improve Migo-R ethernet performance by reducing smc91x overruns.
This is done by enabling SMC91X_NOWAIT and optimizing CS4 setup.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/boards/mach-migor/setup.c
arch/sh/include/asm/migor.h

index 003ce83..3e3cc9d 100644 (file)
@@ -37,7 +37,7 @@
  */
 
 static struct smc91x_platdata smc91x_info = {
-       .flags = SMC91X_USE_16BIT,
+       .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
 };
 
 static struct resource smc91x_eth_resources[] = {
@@ -463,8 +463,10 @@ static int __init migor_devices_setup(void)
        gpio_direction_output(GPIO_PTJ5, 1);
        gpio_export(GPIO_PTJ5, 0);
 
-       /* SMC91C111 */
+       /* SMC91C111 - Enable IRQ0, Setup CS4 for 16-bit fast access */
        gpio_request(GPIO_FN_IRQ0, NULL);
+       ctrl_outl(0x00003400, BSC_CS4BCR);
+       ctrl_outl(0x00110080, BSC_CS4WCR);
 
        /* KEYSC */
        clk_always_enable("mstp214"); /* KEYSC */
index 70596d3..e451f02 100644 (file)
@@ -52,7 +52,9 @@
 #define PORT_HIZCRB 0xa405015a
 #define PORT_HIZCRC 0xa405015c
 
+#define BSC_CS4BCR 0xfec10010
 #define BSC_CS6ABCR 0xfec1001c
+#define BSC_CS4WCR 0xfec10030
 
 #include <video/sh_mobile_lcdc.h>