diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/Kconfig | 8 | ||||
-rw-r--r-- | drivers/net/cs89x0.c | 12 | ||||
-rw-r--r-- | drivers/net/irda/pxaficp_ir.c | 8 | ||||
-rw-r--r-- | drivers/net/smc91x.c | 9 | ||||
-rw-r--r-- | drivers/net/smc91x.h | 13 |
5 files changed, 32 insertions, 18 deletions
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 4a11296a9514..9df7bb93edca 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
@@ -1386,7 +1386,8 @@ config FORCEDETH_NAPI | |||
1386 | 1386 | ||
1387 | config CS89x0 | 1387 | config CS89x0 |
1388 | tristate "CS89x0 support" | 1388 | tristate "CS89x0 support" |
1389 | depends on NET_PCI && (ISA || MACH_IXDP2351 || ARCH_IXDP2X01 || ARCH_PNX010X) | 1389 | depends on NET_ETHERNET && (ISA || EISA || MACH_IXDP2351 \ |
1390 | || ARCH_IXDP2X01 || ARCH_PNX010X || MACH_MX31ADS) | ||
1390 | ---help--- | 1391 | ---help--- |
1391 | Support for CS89x0 chipset based Ethernet cards. If you have a | 1392 | Support for CS89x0 chipset based Ethernet cards. If you have a |
1392 | network (Ethernet) card of this type, say Y and read the | 1393 | network (Ethernet) card of this type, say Y and read the |
@@ -1397,6 +1398,11 @@ config CS89x0 | |||
1397 | To compile this driver as a module, choose M here. The module | 1398 | To compile this driver as a module, choose M here. The module |
1398 | will be called cs89x0. | 1399 | will be called cs89x0. |
1399 | 1400 | ||
1401 | config CS89x0_NONISA_IRQ | ||
1402 | def_bool y | ||
1403 | depends on CS89x0 != n | ||
1404 | depends on MACH_IXDP2351 || ARCH_IXDP2X01 || ARCH_PNX010X || MACH_MX31ADS | ||
1405 | |||
1400 | config TC35815 | 1406 | config TC35815 |
1401 | tristate "TOSHIBA TC35815 Ethernet support" | 1407 | tristate "TOSHIBA TC35815 Ethernet support" |
1402 | depends on NET_PCI && PCI && MIPS | 1408 | depends on NET_PCI && PCI && MIPS |
diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c index ea6144a9565e..5890a917a628 100644 --- a/drivers/net/cs89x0.c +++ b/drivers/net/cs89x0.c | |||
@@ -194,6 +194,12 @@ static unsigned int cs8900_irq_map[] = {IRQ_IXDP2X01_CS8900, 0, 0, 0}; | |||
194 | #define CIRRUS_DEFAULT_IRQ VH_INTC_INT_NUM_CASCADED_INTERRUPT_1 /* Event inputs bank 1 - ID 35/bit 3 */ | 194 | #define CIRRUS_DEFAULT_IRQ VH_INTC_INT_NUM_CASCADED_INTERRUPT_1 /* Event inputs bank 1 - ID 35/bit 3 */ |
195 | static unsigned int netcard_portlist[] __used __initdata = {CIRRUS_DEFAULT_BASE, 0}; | 195 | static unsigned int netcard_portlist[] __used __initdata = {CIRRUS_DEFAULT_BASE, 0}; |
196 | static unsigned int cs8900_irq_map[] = {CIRRUS_DEFAULT_IRQ, 0, 0, 0}; | 196 | static unsigned int cs8900_irq_map[] = {CIRRUS_DEFAULT_IRQ, 0, 0, 0}; |
197 | #elif defined(CONFIG_MACH_MX31ADS) | ||
198 | #include <mach/board-mx31ads.h> | ||
199 | static unsigned int netcard_portlist[] __used __initdata = { | ||
200 | PBC_BASE_ADDRESS + PBC_CS8900A_IOBASE + 0x300, 0 | ||
201 | }; | ||
202 | static unsigned cs8900_irq_map[] = {EXPIO_INT_ENET_INT, 0, 0, 0}; | ||
197 | #else | 203 | #else |
198 | static unsigned int netcard_portlist[] __used __initdata = | 204 | static unsigned int netcard_portlist[] __used __initdata = |
199 | { 0x300, 0x320, 0x340, 0x360, 0x200, 0x220, 0x240, 0x260, 0x280, 0x2a0, 0x2c0, 0x2e0, 0}; | 205 | { 0x300, 0x320, 0x340, 0x360, 0x200, 0x220, 0x240, 0x260, 0x280, 0x2a0, 0x2c0, 0x2e0, 0}; |
@@ -802,7 +808,7 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular) | |||
802 | } else { | 808 | } else { |
803 | i = lp->isa_config & INT_NO_MASK; | 809 | i = lp->isa_config & INT_NO_MASK; |
804 | if (lp->chip_type == CS8900) { | 810 | if (lp->chip_type == CS8900) { |
805 | #if defined(CONFIG_MACH_IXDP2351) || defined(CONFIG_ARCH_IXDP2X01) || defined(CONFIG_ARCH_PNX010X) | 811 | #ifdef CONFIG_CS89x0_NONISA_IRQ |
806 | i = cs8900_irq_map[0]; | 812 | i = cs8900_irq_map[0]; |
807 | #else | 813 | #else |
808 | /* Translate the IRQ using the IRQ mapping table. */ | 814 | /* Translate the IRQ using the IRQ mapping table. */ |
@@ -1029,6 +1035,7 @@ skip_this_frame: | |||
1029 | 1035 | ||
1030 | void __init reset_chip(struct net_device *dev) | 1036 | void __init reset_chip(struct net_device *dev) |
1031 | { | 1037 | { |
1038 | #if !defined(CONFIG_MACH_MX31ADS) | ||
1032 | #if !defined(CONFIG_MACH_IXDP2351) && !defined(CONFIG_ARCH_IXDP2X01) | 1039 | #if !defined(CONFIG_MACH_IXDP2351) && !defined(CONFIG_ARCH_IXDP2X01) |
1033 | struct net_local *lp = netdev_priv(dev); | 1040 | struct net_local *lp = netdev_priv(dev); |
1034 | int ioaddr = dev->base_addr; | 1041 | int ioaddr = dev->base_addr; |
@@ -1057,6 +1064,7 @@ void __init reset_chip(struct net_device *dev) | |||
1057 | reset_start_time = jiffies; | 1064 | reset_start_time = jiffies; |
1058 | while( (readreg(dev, PP_SelfST) & INIT_DONE) == 0 && jiffies - reset_start_time < 2) | 1065 | while( (readreg(dev, PP_SelfST) & INIT_DONE) == 0 && jiffies - reset_start_time < 2) |
1059 | ; | 1066 | ; |
1067 | #endif /* !CONFIG_MACH_MX31ADS */ | ||
1060 | } | 1068 | } |
1061 | 1069 | ||
1062 | 1070 | ||
@@ -1304,7 +1312,7 @@ net_open(struct net_device *dev) | |||
1304 | else | 1312 | else |
1305 | #endif | 1313 | #endif |
1306 | { | 1314 | { |
1307 | #if !defined(CONFIG_MACH_IXDP2351) && !defined(CONFIG_ARCH_IXDP2X01) && !defined(CONFIG_ARCH_PNX010X) | 1315 | #ifndef CONFIG_CS89x0_NONISA_IRQ |
1308 | if (((1 << dev->irq) & lp->irq_map) == 0) { | 1316 | if (((1 << dev->irq) & lp->irq_map) == 0) { |
1309 | printk(KERN_ERR "%s: IRQ %d is not in our map of allowable IRQs, which is %x\n", | 1317 | printk(KERN_ERR "%s: IRQ %d is not in our map of allowable IRQs, which is %x\n", |
1310 | dev->name, dev->irq, lp->irq_map); | 1318 | dev->name, dev->irq, lp->irq_map); |
diff --git a/drivers/net/irda/pxaficp_ir.c b/drivers/net/irda/pxaficp_ir.c index 4aa61a1a3d55..c5b02b66f756 100644 --- a/drivers/net/irda/pxaficp_ir.c +++ b/drivers/net/irda/pxaficp_ir.c | |||
@@ -572,8 +572,8 @@ static void pxa_irda_startup(struct pxa_irda *si) | |||
572 | ICCR2 = ICCR2_TXP | ICCR2_TRIG_32; | 572 | ICCR2 = ICCR2_TXP | ICCR2_TRIG_32; |
573 | 573 | ||
574 | /* configure DMAC */ | 574 | /* configure DMAC */ |
575 | DRCMR17 = si->rxdma | DRCMR_MAPVLD; | 575 | DRCMR(17) = si->rxdma | DRCMR_MAPVLD; |
576 | DRCMR18 = si->txdma | DRCMR_MAPVLD; | 576 | DRCMR(18) = si->txdma | DRCMR_MAPVLD; |
577 | 577 | ||
578 | /* force SIR reinitialization */ | 578 | /* force SIR reinitialization */ |
579 | si->speed = 4000000; | 579 | si->speed = 4000000; |
@@ -602,8 +602,8 @@ static void pxa_irda_shutdown(struct pxa_irda *si) | |||
602 | /* disable the STUART or FICP clocks */ | 602 | /* disable the STUART or FICP clocks */ |
603 | pxa_irda_disable_clk(si); | 603 | pxa_irda_disable_clk(si); |
604 | 604 | ||
605 | DRCMR17 = 0; | 605 | DRCMR(17) = 0; |
606 | DRCMR18 = 0; | 606 | DRCMR(18) = 0; |
607 | 607 | ||
608 | local_irq_restore(flags); | 608 | local_irq_restore(flags); |
609 | 609 | ||
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c index 24768c10cadb..e332a518efe8 100644 --- a/drivers/net/smc91x.c +++ b/drivers/net/smc91x.c | |||
@@ -1520,7 +1520,9 @@ smc_open(struct net_device *dev) | |||
1520 | /* Setup the default Register Modes */ | 1520 | /* Setup the default Register Modes */ |
1521 | lp->tcr_cur_mode = TCR_DEFAULT; | 1521 | lp->tcr_cur_mode = TCR_DEFAULT; |
1522 | lp->rcr_cur_mode = RCR_DEFAULT; | 1522 | lp->rcr_cur_mode = RCR_DEFAULT; |
1523 | lp->rpc_cur_mode = RPC_DEFAULT; | 1523 | lp->rpc_cur_mode = RPC_DEFAULT | |
1524 | lp->cfg.leda << RPC_LSXA_SHFT | | ||
1525 | lp->cfg.ledb << RPC_LSXB_SHFT; | ||
1524 | 1526 | ||
1525 | /* | 1527 | /* |
1526 | * If we are not using a MII interface, we need to | 1528 | * If we are not using a MII interface, we need to |
@@ -2157,6 +2159,11 @@ static int smc_drv_probe(struct platform_device *pdev) | |||
2157 | lp->cfg.flags |= (nowait) ? SMC91X_NOWAIT : 0; | 2159 | lp->cfg.flags |= (nowait) ? SMC91X_NOWAIT : 0; |
2158 | } | 2160 | } |
2159 | 2161 | ||
2162 | if (!lp->cfg.leda && !lp->cfg.ledb) { | ||
2163 | lp->cfg.leda = RPC_LSA_DEFAULT; | ||
2164 | lp->cfg.ledb = RPC_LSB_DEFAULT; | ||
2165 | } | ||
2166 | |||
2160 | ndev->dma = (unsigned char)-1; | 2167 | ndev->dma = (unsigned char)-1; |
2161 | 2168 | ||
2162 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-regs"); | 2169 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-regs"); |
diff --git a/drivers/net/smc91x.h b/drivers/net/smc91x.h index 997e7f1d5c6e..160873f0a817 100644 --- a/drivers/net/smc91x.h +++ b/drivers/net/smc91x.h | |||
@@ -43,7 +43,8 @@ | |||
43 | #if defined(CONFIG_ARCH_LUBBOCK) ||\ | 43 | #if defined(CONFIG_ARCH_LUBBOCK) ||\ |
44 | defined(CONFIG_MACH_MAINSTONE) ||\ | 44 | defined(CONFIG_MACH_MAINSTONE) ||\ |
45 | defined(CONFIG_MACH_ZYLONITE) ||\ | 45 | defined(CONFIG_MACH_ZYLONITE) ||\ |
46 | defined(CONFIG_MACH_LITTLETON) | 46 | defined(CONFIG_MACH_LITTLETON) ||\ |
47 | defined(CONFIG_ARCH_VIPER) | ||
47 | 48 | ||
48 | #include <asm/mach-types.h> | 49 | #include <asm/mach-types.h> |
49 | 50 | ||
@@ -778,14 +779,6 @@ smc_pxa_dma_irq(int dma, void *dummy) | |||
778 | #define RPC_ANEG 0x0800 // When 1 PHY is in Auto-Negotiate Mode | 779 | #define RPC_ANEG 0x0800 // When 1 PHY is in Auto-Negotiate Mode |
779 | #define RPC_LSXA_SHFT 5 // Bits to shift LS2A,LS1A,LS0A to lsb | 780 | #define RPC_LSXA_SHFT 5 // Bits to shift LS2A,LS1A,LS0A to lsb |
780 | #define RPC_LSXB_SHFT 2 // Bits to get LS2B,LS1B,LS0B to lsb | 781 | #define RPC_LSXB_SHFT 2 // Bits to get LS2B,LS1B,LS0B to lsb |
781 | #define RPC_LED_100_10 (0x00) // LED = 100Mbps OR's with 10Mbps link detect | ||
782 | #define RPC_LED_RES (0x01) // LED = Reserved | ||
783 | #define RPC_LED_10 (0x02) // LED = 10Mbps link detect | ||
784 | #define RPC_LED_FD (0x03) // LED = Full Duplex Mode | ||
785 | #define RPC_LED_TX_RX (0x04) // LED = TX or RX packet occurred | ||
786 | #define RPC_LED_100 (0x05) // LED = 100Mbps link dectect | ||
787 | #define RPC_LED_TX (0x06) // LED = TX packet occurred | ||
788 | #define RPC_LED_RX (0x07) // LED = RX packet occurred | ||
789 | 782 | ||
790 | #ifndef RPC_LSA_DEFAULT | 783 | #ifndef RPC_LSA_DEFAULT |
791 | #define RPC_LSA_DEFAULT RPC_LED_100 | 784 | #define RPC_LSA_DEFAULT RPC_LED_100 |
@@ -794,7 +787,7 @@ smc_pxa_dma_irq(int dma, void *dummy) | |||
794 | #define RPC_LSB_DEFAULT RPC_LED_FD | 787 | #define RPC_LSB_DEFAULT RPC_LED_FD |
795 | #endif | 788 | #endif |
796 | 789 | ||
797 | #define RPC_DEFAULT (RPC_ANEG | (RPC_LSA_DEFAULT << RPC_LSXA_SHFT) | (RPC_LSB_DEFAULT << RPC_LSXB_SHFT) | RPC_SPEED | RPC_DPLX) | 790 | #define RPC_DEFAULT (RPC_ANEG | RPC_SPEED | RPC_DPLX) |
798 | 791 | ||
799 | 792 | ||
800 | /* Bank 0 0x0C is reserved */ | 793 | /* Bank 0 0x0C is reserved */ |