Loading drivers/net/cs89x0.c +2 −49 Original line number Original line Diff line number Diff line Loading @@ -170,11 +170,7 @@ static char version[] __initdata = /* The cs8900 has 4 IRQ pins, software selectable. cs8900_irq_map maps /* The cs8900 has 4 IRQ pins, software selectable. cs8900_irq_map maps them to system IRQ numbers. This mapping is card specific and is set to them to system IRQ numbers. This mapping is card specific and is set to the configuration of the Cirrus Eval board for this chip. */ the configuration of the Cirrus Eval board for this chip. */ #if defined(CONFIG_SH_HICOSH4) #if defined(CONFIG_MACH_IXDP2351) static unsigned int netcard_portlist[] __used __initdata = { 0x0300, 0}; static unsigned int cs8900_irq_map[] = {1,0,0,0}; #elif defined(CONFIG_MACH_IXDP2351) static unsigned int netcard_portlist[] __used __initdata = {IXDP2351_VIRT_CS8900_BASE, 0}; static unsigned int netcard_portlist[] __used __initdata = {IXDP2351_VIRT_CS8900_BASE, 0}; static unsigned int cs8900_irq_map[] = {IRQ_IXDP2351_CS8900, 0, 0, 0}; static unsigned int cs8900_irq_map[] = {IRQ_IXDP2351_CS8900, 0, 0, 0}; #elif defined(CONFIG_ARCH_IXDP2X01) #elif defined(CONFIG_ARCH_IXDP2X01) Loading Loading @@ -578,12 +574,6 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular) goto out1; goto out1; } } #ifdef CONFIG_SH_HICOSH4 /* truly reset the chip */ writeword(ioaddr, ADD_PORT, 0x0114); writeword(ioaddr, DATA_PORT, 0x0040); #endif /* if they give us an odd I/O address, then do ONE write to /* if they give us an odd I/O address, then do ONE write to the address port, to get it back to address zero, where we the address port, to get it back to address zero, where we expect to find the EISA signature word. An IO with a base of 0x3 expect to find the EISA signature word. An IO with a base of 0x3 Loading Loading @@ -649,37 +639,6 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular) the driver will always do *something* instead of complain that the driver will always do *something* instead of complain that adapter_cnf is 0. */ adapter_cnf is 0. */ #ifdef CONFIG_SH_HICOSH4 if (1) { /* For the HiCO.SH4 board, things are different: we don't have EEPROM, but there is some data in flash, so we go get it there directly (MAC). */ __u16 *confd; short cnt; if (((* (volatile __u32 *) 0xa0013ff0) & 0x00ffffff) == 0x006c3000) { confd = (__u16*) 0xa0013fc0; } else { confd = (__u16*) 0xa001ffc0; } cnt = (*confd++ & 0x00ff) >> 1; while (--cnt > 0) { __u16 j = *confd++; switch (j & 0x0fff) { case PP_IA: for (i = 0; i < ETH_ALEN/2; i++) { dev->dev_addr[i*2] = confd[i] & 0xFF; dev->dev_addr[i*2+1] = confd[i] >> 8; } break; } j = (j >> 12) + 1; confd += j; cnt -= j; } } else #endif if ((readreg(dev, PP_SelfST) & (EEPROM_OK | EEPROM_PRESENT)) == if ((readreg(dev, PP_SelfST) & (EEPROM_OK | EEPROM_PRESENT)) == (EEPROM_OK|EEPROM_PRESENT)) { (EEPROM_OK|EEPROM_PRESENT)) { Loading Loading @@ -734,11 +693,7 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular) printk("\n"); printk("\n"); /* First check to see if an EEPROM is attached. */ /* First check to see if an EEPROM is attached. */ #ifdef CONFIG_SH_HICOSH4 /* no EEPROM on HiCO, don't hazzle with it here */ if (1) { printk(KERN_NOTICE "cs89x0: No EEPROM on HiCO.SH4\n"); } else #endif if ((readreg(dev, PP_SelfST) & EEPROM_PRESENT) == 0) if ((readreg(dev, PP_SelfST) & EEPROM_PRESENT) == 0) printk(KERN_WARNING "cs89x0: No EEPROM, relying on command line....\n"); printk(KERN_WARNING "cs89x0: No EEPROM, relying on command line....\n"); else if (get_eeprom_data(dev, START_EEPROM_DATA,CHKSUM_LEN,eeprom_buff) < 0) { else if (get_eeprom_data(dev, START_EEPROM_DATA,CHKSUM_LEN,eeprom_buff) < 0) { Loading Loading @@ -1275,7 +1230,6 @@ net_open(struct net_device *dev) int i; int i; int ret; int ret; #if !defined(CONFIG_SH_HICOSH4) && !defined(CONFIG_ARCH_PNX010X) /* uses irq#1, so this won't work */ if (dev->irq < 2) { if (dev->irq < 2) { /* Allow interrupts to be generated by the chip */ /* Allow interrupts to be generated by the chip */ /* Cirrus' release had this: */ /* Cirrus' release had this: */ Loading Loading @@ -1304,7 +1258,6 @@ net_open(struct net_device *dev) } } } } else else #endif { { #ifndef CONFIG_CS89x0_NONISA_IRQ #ifndef CONFIG_CS89x0_NONISA_IRQ if (((1 << dev->irq) & lp->irq_map) == 0) { if (((1 << dev->irq) & lp->irq_map) == 0) { Loading drivers/net/cs89x0.h +0 −4 Original line number Original line Diff line number Diff line Loading @@ -437,11 +437,7 @@ #define IRQ_MAP_EEPROM_DATA 0x0046 /* Offset into eeprom for the IRQ map */ #define IRQ_MAP_EEPROM_DATA 0x0046 /* Offset into eeprom for the IRQ map */ #define IRQ_MAP_LEN 0x0004 /* No of bytes to read for the IRQ map */ #define IRQ_MAP_LEN 0x0004 /* No of bytes to read for the IRQ map */ #define PNP_IRQ_FRMT 0x0022 /* PNP small item IRQ format */ #define PNP_IRQ_FRMT 0x0022 /* PNP small item IRQ format */ #ifdef CONFIG_SH_HICOSH4 #define CS8900_IRQ_MAP 0x0002 /* HiCO-SH4 board has its IRQ on #1 */ #else #define CS8900_IRQ_MAP 0x1c20 /* This IRQ map is fixed */ #define CS8900_IRQ_MAP 0x1c20 /* This IRQ map is fixed */ #endif #define CS8920_NO_INTS 0x0F /* Max CS8920 interrupt select # */ #define CS8920_NO_INTS 0x0F /* Max CS8920 interrupt select # */ Loading Loading
drivers/net/cs89x0.c +2 −49 Original line number Original line Diff line number Diff line Loading @@ -170,11 +170,7 @@ static char version[] __initdata = /* The cs8900 has 4 IRQ pins, software selectable. cs8900_irq_map maps /* The cs8900 has 4 IRQ pins, software selectable. cs8900_irq_map maps them to system IRQ numbers. This mapping is card specific and is set to them to system IRQ numbers. This mapping is card specific and is set to the configuration of the Cirrus Eval board for this chip. */ the configuration of the Cirrus Eval board for this chip. */ #if defined(CONFIG_SH_HICOSH4) #if defined(CONFIG_MACH_IXDP2351) static unsigned int netcard_portlist[] __used __initdata = { 0x0300, 0}; static unsigned int cs8900_irq_map[] = {1,0,0,0}; #elif defined(CONFIG_MACH_IXDP2351) static unsigned int netcard_portlist[] __used __initdata = {IXDP2351_VIRT_CS8900_BASE, 0}; static unsigned int netcard_portlist[] __used __initdata = {IXDP2351_VIRT_CS8900_BASE, 0}; static unsigned int cs8900_irq_map[] = {IRQ_IXDP2351_CS8900, 0, 0, 0}; static unsigned int cs8900_irq_map[] = {IRQ_IXDP2351_CS8900, 0, 0, 0}; #elif defined(CONFIG_ARCH_IXDP2X01) #elif defined(CONFIG_ARCH_IXDP2X01) Loading Loading @@ -578,12 +574,6 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular) goto out1; goto out1; } } #ifdef CONFIG_SH_HICOSH4 /* truly reset the chip */ writeword(ioaddr, ADD_PORT, 0x0114); writeword(ioaddr, DATA_PORT, 0x0040); #endif /* if they give us an odd I/O address, then do ONE write to /* if they give us an odd I/O address, then do ONE write to the address port, to get it back to address zero, where we the address port, to get it back to address zero, where we expect to find the EISA signature word. An IO with a base of 0x3 expect to find the EISA signature word. An IO with a base of 0x3 Loading Loading @@ -649,37 +639,6 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular) the driver will always do *something* instead of complain that the driver will always do *something* instead of complain that adapter_cnf is 0. */ adapter_cnf is 0. */ #ifdef CONFIG_SH_HICOSH4 if (1) { /* For the HiCO.SH4 board, things are different: we don't have EEPROM, but there is some data in flash, so we go get it there directly (MAC). */ __u16 *confd; short cnt; if (((* (volatile __u32 *) 0xa0013ff0) & 0x00ffffff) == 0x006c3000) { confd = (__u16*) 0xa0013fc0; } else { confd = (__u16*) 0xa001ffc0; } cnt = (*confd++ & 0x00ff) >> 1; while (--cnt > 0) { __u16 j = *confd++; switch (j & 0x0fff) { case PP_IA: for (i = 0; i < ETH_ALEN/2; i++) { dev->dev_addr[i*2] = confd[i] & 0xFF; dev->dev_addr[i*2+1] = confd[i] >> 8; } break; } j = (j >> 12) + 1; confd += j; cnt -= j; } } else #endif if ((readreg(dev, PP_SelfST) & (EEPROM_OK | EEPROM_PRESENT)) == if ((readreg(dev, PP_SelfST) & (EEPROM_OK | EEPROM_PRESENT)) == (EEPROM_OK|EEPROM_PRESENT)) { (EEPROM_OK|EEPROM_PRESENT)) { Loading Loading @@ -734,11 +693,7 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular) printk("\n"); printk("\n"); /* First check to see if an EEPROM is attached. */ /* First check to see if an EEPROM is attached. */ #ifdef CONFIG_SH_HICOSH4 /* no EEPROM on HiCO, don't hazzle with it here */ if (1) { printk(KERN_NOTICE "cs89x0: No EEPROM on HiCO.SH4\n"); } else #endif if ((readreg(dev, PP_SelfST) & EEPROM_PRESENT) == 0) if ((readreg(dev, PP_SelfST) & EEPROM_PRESENT) == 0) printk(KERN_WARNING "cs89x0: No EEPROM, relying on command line....\n"); printk(KERN_WARNING "cs89x0: No EEPROM, relying on command line....\n"); else if (get_eeprom_data(dev, START_EEPROM_DATA,CHKSUM_LEN,eeprom_buff) < 0) { else if (get_eeprom_data(dev, START_EEPROM_DATA,CHKSUM_LEN,eeprom_buff) < 0) { Loading Loading @@ -1275,7 +1230,6 @@ net_open(struct net_device *dev) int i; int i; int ret; int ret; #if !defined(CONFIG_SH_HICOSH4) && !defined(CONFIG_ARCH_PNX010X) /* uses irq#1, so this won't work */ if (dev->irq < 2) { if (dev->irq < 2) { /* Allow interrupts to be generated by the chip */ /* Allow interrupts to be generated by the chip */ /* Cirrus' release had this: */ /* Cirrus' release had this: */ Loading Loading @@ -1304,7 +1258,6 @@ net_open(struct net_device *dev) } } } } else else #endif { { #ifndef CONFIG_CS89x0_NONISA_IRQ #ifndef CONFIG_CS89x0_NONISA_IRQ if (((1 << dev->irq) & lp->irq_map) == 0) { if (((1 << dev->irq) & lp->irq_map) == 0) { Loading
drivers/net/cs89x0.h +0 −4 Original line number Original line Diff line number Diff line Loading @@ -437,11 +437,7 @@ #define IRQ_MAP_EEPROM_DATA 0x0046 /* Offset into eeprom for the IRQ map */ #define IRQ_MAP_EEPROM_DATA 0x0046 /* Offset into eeprom for the IRQ map */ #define IRQ_MAP_LEN 0x0004 /* No of bytes to read for the IRQ map */ #define IRQ_MAP_LEN 0x0004 /* No of bytes to read for the IRQ map */ #define PNP_IRQ_FRMT 0x0022 /* PNP small item IRQ format */ #define PNP_IRQ_FRMT 0x0022 /* PNP small item IRQ format */ #ifdef CONFIG_SH_HICOSH4 #define CS8900_IRQ_MAP 0x0002 /* HiCO-SH4 board has its IRQ on #1 */ #else #define CS8900_IRQ_MAP 0x1c20 /* This IRQ map is fixed */ #define CS8900_IRQ_MAP 0x1c20 /* This IRQ map is fixed */ #endif #define CS8920_NO_INTS 0x0F /* Max CS8920 interrupt select # */ #define CS8920_NO_INTS 0x0F /* Max CS8920 interrupt select # */ Loading