aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/smc91x.c9
-rw-r--r--drivers/net/smc91x.h2
-rw-r--r--include/linux/smc91x.h2
3 files changed, 11 insertions, 2 deletions
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index 2040965d7724..ceed2f69216a 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..8322e7f37af5 100644
--- a/drivers/net/smc91x.h
+++ b/drivers/net/smc91x.h
@@ -794,7 +794,7 @@ smc_pxa_dma_irq(int dma, void *dummy)
794#define RPC_LSB_DEFAULT RPC_LED_FD 794#define RPC_LSB_DEFAULT RPC_LED_FD
795#endif 795#endif
796 796
797#define RPC_DEFAULT (RPC_ANEG | (RPC_LSA_DEFAULT << RPC_LSXA_SHFT) | (RPC_LSB_DEFAULT << RPC_LSXB_SHFT) | RPC_SPEED | RPC_DPLX) 797#define RPC_DEFAULT (RPC_ANEG | RPC_SPEED | RPC_DPLX)
798 798
799 799
800/* Bank 0 0x0C is reserved */ 800/* Bank 0 0x0C is reserved */
diff --git a/include/linux/smc91x.h b/include/linux/smc91x.h
index 3827b922ba1f..ed25483d25d9 100644
--- a/include/linux/smc91x.h
+++ b/include/linux/smc91x.h
@@ -18,6 +18,8 @@
18 18
19struct smc91x_platdata { 19struct smc91x_platdata {
20 unsigned long flags; 20 unsigned long flags;
21 unsigned char leda;
22 unsigned char ledb;
21}; 23};
22 24
23#endif /* __SMC91X_H__ */ 25#endif /* __SMC91X_H__ */