diff options
Diffstat (limited to 'drivers/net/ethernet/smsc/smc91x.c')
| -rw-r--r-- | drivers/net/ethernet/smsc/smc91x.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/drivers/net/ethernet/smsc/smc91x.c b/drivers/net/ethernet/smsc/smc91x.c index 5d093dc0f5f5..8678e39aba08 100644 --- a/drivers/net/ethernet/smsc/smc91x.c +++ b/drivers/net/ethernet/smsc/smc91x.c | |||
| @@ -2248,10 +2248,9 @@ static int smc_drv_probe(struct platform_device *pdev) | |||
| 2248 | const struct of_device_id *match = NULL; | 2248 | const struct of_device_id *match = NULL; |
| 2249 | struct smc_local *lp; | 2249 | struct smc_local *lp; |
| 2250 | struct net_device *ndev; | 2250 | struct net_device *ndev; |
| 2251 | struct resource *res; | 2251 | struct resource *res, *ires; |
| 2252 | unsigned int __iomem *addr; | 2252 | unsigned int __iomem *addr; |
| 2253 | unsigned long irq_flags = SMC_IRQ_FLAGS; | 2253 | unsigned long irq_flags = SMC_IRQ_FLAGS; |
| 2254 | unsigned long irq_resflags; | ||
| 2255 | int ret; | 2254 | int ret; |
| 2256 | 2255 | ||
| 2257 | ndev = alloc_etherdev(sizeof(struct smc_local)); | 2256 | ndev = alloc_etherdev(sizeof(struct smc_local)); |
| @@ -2343,19 +2342,16 @@ static int smc_drv_probe(struct platform_device *pdev) | |||
| 2343 | goto out_free_netdev; | 2342 | goto out_free_netdev; |
| 2344 | } | 2343 | } |
| 2345 | 2344 | ||
| 2346 | ndev->irq = platform_get_irq(pdev, 0); | 2345 | ires = platform_get_resource(pdev, IORESOURCE_IRQ, 0); |
| 2347 | if (ndev->irq <= 0) { | 2346 | if (!ires) { |
| 2348 | ret = -ENODEV; | 2347 | ret = -ENODEV; |
| 2349 | goto out_release_io; | 2348 | goto out_release_io; |
| 2350 | } | 2349 | } |
| 2351 | /* | 2350 | |
| 2352 | * If this platform does not specify any special irqflags, or if | 2351 | ndev->irq = ires->start; |
| 2353 | * the resource supplies a trigger, override the irqflags with | 2352 | |
| 2354 | * the trigger flags from the resource. | 2353 | if (irq_flags == -1 || ires->flags & IRQF_TRIGGER_MASK) |
| 2355 | */ | 2354 | irq_flags = ires->flags & IRQF_TRIGGER_MASK; |
| 2356 | irq_resflags = irqd_get_trigger_type(irq_get_irq_data(ndev->irq)); | ||
| 2357 | if (irq_flags == -1 || irq_resflags & IRQF_TRIGGER_MASK) | ||
| 2358 | irq_flags = irq_resflags & IRQF_TRIGGER_MASK; | ||
| 2359 | 2355 | ||
| 2360 | ret = smc_request_attrib(pdev, ndev); | 2356 | ret = smc_request_attrib(pdev, ndev); |
| 2361 | if (ret) | 2357 | if (ret) |
