From: 刘益星 Date: Mon, 17 May 2010 02:35:58 +0000 (+0000) Subject: modify for dm9000 X-Git-Tag: firefly_0821_release~11529 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=a3cf55fe4e99f851b283eb7b951006f072e2fff0;p=firefly-linux-kernel-4.4.55.git modify for dm9000 --- diff --git a/arch/arm/mach-rk2818/devices.c b/arch/arm/mach-rk2818/devices.c index 2587f298779e..61d65689b54e 100644 --- a/arch/arm/mach-rk2818/devices.c +++ b/arch/arm/mach-rk2818/devices.c @@ -198,17 +198,17 @@ struct platform_device rk2818_device_fb = { /* DM9000 */ static struct resource dm9k_resource[] = { [0] = { - .start = RK2818_NANDC_PHYS + 0x800 + 1*0x100, //nand_cs1 - .end = RK2818_NANDC_PHYS + 0x800 + 1*0x100 + 3, + .start = RK2818_NANDC_PHYS + 0x800 + (1*0x100 + 0x8), //nand_cs1+nand_cmd + .end = RK2818_NANDC_PHYS + 0x800 + (1*0x100 + 0x8) + 3, .flags = IORESOURCE_MEM, }, [1] = { - .start = RK2818_NANDC_PHYS + (0x800+1*0x100)+ 0x4, - .end = RK2818_NANDC_PHYS + (0x800+1*0x100)+ 0x4 + 3, + .start = RK2818_NANDC_PHYS + 0x800 + (1*0x100 + 0x4), //nand_cs1+nand_data + .end = RK2818_NANDC_PHYS + 0x800 + (1*0x100 + 0x4) + 3, .flags = IORESOURCE_MEM, }, [2] = { - .start = RK2818_PIN_PE2,//use pe2 as interrupt + .start = RK2818_PIN_PE2, //use pe2 as interrupt .end = RK2818_PIN_PE2, .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHLEVEL, } diff --git a/arch/arm/mach-rk2818/include/mach/rk2818_iomap.h b/arch/arm/mach-rk2818/include/mach/rk2818_iomap.h index ab4d38039681..d8ad78b3a563 100644 --- a/arch/arm/mach-rk2818/include/mach/rk2818_iomap.h +++ b/arch/arm/mach-rk2818/include/mach/rk2818_iomap.h @@ -91,7 +91,7 @@ #define RK2818_NANDC_BASE 0xFF0AE000 #define RK2818_NANDC_PHYS 0x100AE000 -#define RK2818_NANDC_SIZE SZ_8K +#define RK2818_NANDC_SIZE SZ_16K #define RK2818_SDRAMC_BASE 0xFF0B0000 #define RK2818_SDRAMC_PHYS 0x100B0000 diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c index da2b18ba41e8..9a7d9e985797 100644 --- a/drivers/net/dm9000.c +++ b/drivers/net/dm9000.c @@ -911,8 +911,12 @@ dm9000_rx(struct net_device *dev) /* Status check: this byte must be 0 or 1 */ if (rxbyte & DM9000_PKT_ERR) { dev_warn(db->dev, "status check fail: %d\n", rxbyte); + #if 0 iow(db, DM9000_RCR, 0x00); /* Stop Device */ - iow(db, DM9000_ISR, IMR_PAR); /* Stop INT request */ + iow(db, DM9000_IMR, IMR_PAR); /* Stop INT request */ + #else + dm9000_reset(db); + #endif return; }