diff options
| -rw-r--r-- | drivers/net/smc911x.c | 11 | ||||
| -rw-r--r-- | include/linux/smc911x.h | 1 |
2 files changed, 9 insertions, 3 deletions
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c index ec32b5d89c92..2c78229ad04b 100644 --- a/drivers/net/smc911x.c +++ b/drivers/net/smc911x.c | |||
| @@ -180,7 +180,7 @@ static void PRINT_PKT(u_char *buf, int length) | |||
| 180 | static void smc911x_reset(struct net_device *dev) | 180 | static void smc911x_reset(struct net_device *dev) |
| 181 | { | 181 | { |
| 182 | struct smc911x_local *lp = netdev_priv(dev); | 182 | struct smc911x_local *lp = netdev_priv(dev); |
| 183 | unsigned int reg, timeout=0, resets=1; | 183 | unsigned int reg, timeout=0, resets=1, irq_cfg; |
| 184 | unsigned long flags; | 184 | unsigned long flags; |
| 185 | 185 | ||
| 186 | DBG(SMC_DEBUG_FUNC, "%s: --> %s\n", dev->name, __func__); | 186 | DBG(SMC_DEBUG_FUNC, "%s: --> %s\n", dev->name, __func__); |
| @@ -252,7 +252,12 @@ static void smc911x_reset(struct net_device *dev) | |||
| 252 | * Deassert IRQ for 1*10us for edge type interrupts | 252 | * Deassert IRQ for 1*10us for edge type interrupts |
| 253 | * and drive IRQ pin push-pull | 253 | * and drive IRQ pin push-pull |
| 254 | */ | 254 | */ |
| 255 | SMC_SET_IRQ_CFG(lp, (1 << 24) | INT_CFG_IRQ_EN_ | INT_CFG_IRQ_TYPE_); | 255 | irq_cfg = (1 << 24) | INT_CFG_IRQ_EN_ | INT_CFG_IRQ_TYPE_; |
| 256 | #ifdef SMC_DYNAMIC_BUS_CONFIG | ||
| 257 | if (lp->cfg.irq_polarity) | ||
| 258 | irq_cfg |= INT_CFG_IRQ_POL_; | ||
| 259 | #endif | ||
| 260 | SMC_SET_IRQ_CFG(lp, irq_cfg); | ||
| 256 | 261 | ||
| 257 | /* clear anything saved */ | 262 | /* clear anything saved */ |
| 258 | if (lp->pending_tx_skb != NULL) { | 263 | if (lp->pending_tx_skb != NULL) { |
| @@ -2054,7 +2059,7 @@ err_out: | |||
| 2054 | */ | 2059 | */ |
| 2055 | static int smc911x_drv_probe(struct platform_device *pdev) | 2060 | static int smc911x_drv_probe(struct platform_device *pdev) |
| 2056 | { | 2061 | { |
| 2057 | struct smc91x_platdata *pd = pdev->dev.platform_data; | 2062 | struct smc911x_platdata *pd = pdev->dev.platform_data; |
| 2058 | struct net_device *ndev; | 2063 | struct net_device *ndev; |
| 2059 | struct resource *res; | 2064 | struct resource *res; |
| 2060 | struct smc911x_local *lp; | 2065 | struct smc911x_local *lp; |
diff --git a/include/linux/smc911x.h b/include/linux/smc911x.h index b58f54c24183..521f37143fae 100644 --- a/include/linux/smc911x.h +++ b/include/linux/smc911x.h | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | struct smc911x_platdata { | 7 | struct smc911x_platdata { |
| 8 | unsigned long flags; | 8 | unsigned long flags; |
| 9 | unsigned long irq_flags; /* IRQF_... */ | 9 | unsigned long irq_flags; /* IRQF_... */ |
| 10 | int irq_polarity; | ||
| 10 | }; | 11 | }; |
| 11 | 12 | ||
| 12 | #endif /* __SMC911X_H__ */ | 13 | #endif /* __SMC911X_H__ */ |
