From c93adf336c03ab0d6f3a76b8b65ef6e97908a81e Mon Sep 17 00:00:00 2001 From: Ben Dooks Date: Tue, 5 Feb 2008 00:02:04 +0000 Subject: [PATCH] --- yaml --- r: 85599 b: refs/heads/master c: 1a5f1c4ff80f522555d78d4dd0109f18395c6d83 h: refs/heads/master i: 85597: 578ea8d93ae86945ab1fbf96bb623ea99ecca570 85595: 9de6f0bb6fbd05d40e5b613eb8efef93e8e3819f 85591: 8ce87121471063e9307197b07cd27e87445e271d 85583: 73bdfdc032b59d0e065a862f47394a71055d9612 85567: 6f863b6180a1fdc9eff2f8f249f9844928d71855 v: v3 --- [refs] | 2 +- trunk/drivers/net/dm9000.c | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index efc920d47796..0c5b17d33818 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5b2b4ff05593bc35c90dac84ecb82cb7501ecd07 +refs/heads/master: 1a5f1c4ff80f522555d78d4dd0109f18395c6d83 diff --git a/trunk/drivers/net/dm9000.c b/trunk/drivers/net/dm9000.c index 5470062659f4..ec9730aee1e3 100644 --- a/trunk/drivers/net/dm9000.c +++ b/trunk/drivers/net/dm9000.c @@ -90,9 +90,9 @@ #define writesb outsb #define writesw outsw #define writesl outsl -#define DM9000_IRQ_FLAGS (IRQF_SHARED | IRQF_TRIGGER_HIGH) +#define DEFAULT_TRIGGER IRQF_TRIGGER_HIGH #else -#define DM9000_IRQ_FLAGS (IRQF_SHARED | IRQT_RISING) +#define DEFAULT_TRIGGER (0) #endif /* @@ -614,10 +614,21 @@ static int dm9000_open(struct net_device *dev) { board_info_t *db = (board_info_t *) dev->priv; + unsigned long irqflags = db->irq_res->flags & IRQF_TRIGGER_MASK; dev_dbg(db->dev, "entering %s\n", __func__); - if (request_irq(dev->irq, &dm9000_interrupt, DM9000_IRQ_FLAGS, dev->name, dev)) + /* If there is no IRQ type specified, default to something that + * may work, and tell the user that this is a problem */ + + if (irqflags == IRQF_TRIGGER_NONE) { + dev_warn(db->dev, "WARNING: no IRQ resource flags set.\n"); + irqflags = DEFAULT_TRIGGER; + } + + irqflags |= IRQF_SHARED; + + if (request_irq(dev->irq, &dm9000_interrupt, irqflags, dev->name, dev)) return -EAGAIN; /* Initialize DM9000 board */