|
@@ -1299,6 +1299,7 @@ static int
|
|
|
dm9000_open(struct net_device *dev)
|
|
|
{
|
|
|
struct board_info *db = netdev_priv(dev);
|
|
|
+ unsigned int irq_flags = irq_get_trigger_type(dev->irq);
|
|
|
|
|
|
if (netif_msg_ifup(db))
|
|
|
dev_dbg(db->dev, "enabling %s\n", dev->name);
|
|
@@ -1306,9 +1307,11 @@ dm9000_open(struct net_device *dev)
|
|
|
/* If there is no IRQ type specified, tell the user that this is a
|
|
|
* problem
|
|
|
*/
|
|
|
- if (irq_get_trigger_type(dev->irq) == IRQF_TRIGGER_NONE)
|
|
|
+ if (irq_flags == IRQF_TRIGGER_NONE)
|
|
|
dev_warn(db->dev, "WARNING: no IRQ resource flags set.\n");
|
|
|
|
|
|
+ irq_flags |= IRQF_SHARED;
|
|
|
+
|
|
|
/* GPIO0 on pre-activate PHY, Reg 1F is not set by reset */
|
|
|
iow(db, DM9000_GPR, 0); /* REG_1F bit0 activate phyxcer */
|
|
|
mdelay(1); /* delay needs by DM9000B */
|
|
@@ -1316,8 +1319,7 @@ dm9000_open(struct net_device *dev)
|
|
|
/* Initialize DM9000 board */
|
|
|
dm9000_init_dm9000(dev);
|
|
|
|
|
|
- if (request_irq(dev->irq, dm9000_interrupt, IRQF_SHARED,
|
|
|
- dev->name, dev))
|
|
|
+ if (request_irq(dev->irq, dm9000_interrupt, irq_flags, dev->name, dev))
|
|
|
return -EAGAIN;
|
|
|
/* Now that we have an interrupt handler hooked up we can unmask
|
|
|
* our interrupts
|