Commit 319edafef64406c971035c56bd68480e5a82b581
Committed by
Jeff Garzik
1 parent
bd2c4972ff
Exists in
master
and in
7 other branches
smc911x: Add IRQ polarity configuration
Platforms like ARM Ltd's RealView require the IRQ polarity bit to be set for the SMC9118 chip. This patch allows the dynamic configuration via the smc911x_platdata structure. This patch also changes the smc91x_platdata structure name to the correct smc911x_platdata in the smc911x_drv_probe() function. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Showing 2 changed files with 9 additions and 3 deletions Side-by-side Diff
drivers/net/smc911x.c
... | ... | @@ -180,7 +180,7 @@ |
180 | 180 | static void smc911x_reset(struct net_device *dev) |
181 | 181 | { |
182 | 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 | 184 | unsigned long flags; |
185 | 185 | |
186 | 186 | DBG(SMC_DEBUG_FUNC, "%s: --> %s\n", dev->name, __func__); |
... | ... | @@ -252,7 +252,12 @@ |
252 | 252 | * Deassert IRQ for 1*10us for edge type interrupts |
253 | 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 | 262 | /* clear anything saved */ |
258 | 263 | if (lp->pending_tx_skb != NULL) { |
... | ... | @@ -2054,7 +2059,7 @@ |
2054 | 2059 | */ |
2055 | 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 | 2063 | struct net_device *ndev; |
2059 | 2064 | struct resource *res; |
2060 | 2065 | struct smc911x_local *lp; |