Переглянути джерело

sh: reduce Migo-R smc91x overruns

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>
Magnus Damm 16 роки тому
батько
коміт
a30c89ad41
2 змінених файлів з 6 додано та 2 видалено
  1. 4 2
      arch/sh/boards/mach-migor/setup.c
  2. 2 0
      arch/sh/include/asm/migor.h

+ 4 - 2
arch/sh/boards/mach-migor/setup.c

@@ -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 */

+ 2 - 0
arch/sh/include/asm/migor.h

@@ -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>