diff options
author | David Brownell <dbrownell@users.sourceforge.net> | 2008-07-24 17:47:56 -0700 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-07-29 18:24:20 -0400 |
commit | c7b7b042068cd12b8b155722d24686f70b88ced1 (patch) | |
tree | 0cdc8e5e5d568a49944a4f6f1202cadce505518f | |
parent | 74dfd9fb0ae390027cb5a908ab065a21158105d5 (diff) |
enc28j60: don't specify (wrong) IRQ type
Recent changes to the IRQ framework have made passing the wrong
trigger type to request_irq() become a fatal error. In the case
of the enc28j60 driver, it stopped working in my test harness.
(Specifically: the signal detects "pin change" events, both edges,
not just falling edges. Similarly, other boards might route it
through an inverter. Trigger type are board-specific.)
This fixes that problem by the usual fix of expecting board setup
code to have set up the correct IRQ trigger type. The best known
example of that being x86 setup.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
-rw-r--r-- | drivers/net/enc28j60.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/enc28j60.c b/drivers/net/enc28j60.c index c05cb159c77..aa0bf6e1c69 100644 --- a/drivers/net/enc28j60.c +++ b/drivers/net/enc28j60.c @@ -1547,8 +1547,10 @@ static int __devinit enc28j60_probe(struct spi_device *spi) random_ether_addr(dev->dev_addr); enc28j60_set_hw_macaddr(dev); - ret = request_irq(spi->irq, enc28j60_irq, IRQF_TRIGGER_FALLING, - DRV_NAME, priv); + /* Board setup must set the relevant edge trigger type; + * level triggers won't currently work. + */ + ret = request_irq(spi->irq, enc28j60_irq, 0, DRV_NAME, priv); if (ret < 0) { if (netif_msg_probe(priv)) dev_err(&spi->dev, DRV_NAME ": request irq %d failed " |