diff mbox

NET: smc91x: Fix irq flags

Message ID 20091128101323.GA25671@n2100.arm.linux.org.uk
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Russell King - ARM Linux Nov. 28, 2009, 10:13 a.m. UTC
smc91x.h defines SMC_IRQ_FLAGS to be -1 when it wants the interrupt
flags to be taken from the resource structure.  However, d280ead
changed this to checking for non-zero resource flags.

Unfortunately, this means that on some platforms, we end up passing
'-1' to request_irq rather than the desired result.  Combine the two
conditions into one so that the IRQ flags are taken from the resource
if either SMC_IRQ_FLAGS is -1 or the resource flags specify an
interrupt trigger.

This restores network on at least the Versatile platform.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

--
 drivers/net/smc91x.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Eric Miao Nov. 28, 2009, 3:15 p.m. UTC | #1
On Sat, Nov 28, 2009 at 6:13 PM, Russell King - ARM Linux
<linux@arm.linux.org.uk> wrote:
> smc91x.h defines SMC_IRQ_FLAGS to be -1 when it wants the interrupt
> flags to be taken from the resource structure.  However, d280ead
> changed this to checking for non-zero resource flags.
>
> Unfortunately, this means that on some platforms, we end up passing
> '-1' to request_irq rather than the desired result.  Combine the two
> conditions into one so that the IRQ flags are taken from the resource
> if either SMC_IRQ_FLAGS is -1 or the resource flags specify an
> interrupt trigger.
>
> This restores network on at least the Versatile platform.
>
> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

Acked-by: Eric Miao <eric.y.miao@gmail.com>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller Nov. 30, 2009, 7:47 a.m. UTC | #2
From: Eric Miao <eric.y.miao@gmail.com>
Date: Sat, 28 Nov 2009 23:15:13 +0800

> On Sat, Nov 28, 2009 at 6:13 PM, Russell King - ARM Linux
> <linux@arm.linux.org.uk> wrote:
>> smc91x.h defines SMC_IRQ_FLAGS to be -1 when it wants the interrupt
>> flags to be taken from the resource structure. ,A However, d280ead
>> changed this to checking for non-zero resource flags.
>>
>> Unfortunately, this means that on some platforms, we end up passing
>> '-1' to request_irq rather than the desired result. ,A Combine the two
>> conditions into one so that the IRQ flags are taken from the resource
>> if either SMC_IRQ_FLAGS is -1 or the resource flags specify an
>> interrupt trigger.
>>
>> This restores network on at least the Versatile platform.
>>
>> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
> 
> Acked-by: Eric Miao <eric.y.miao@gmail.com>

Applied and queued up for -stable, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index 05c91ee..a7af1f5 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -2283,7 +2283,7 @@  static int __devinit smc_drv_probe(struct platform_device *pdev)
 
 	ndev->irq = ires->start;
 
-	if (ires->flags & IRQF_TRIGGER_MASK)
+	if (irq_flags == -1 || ires->flags & IRQF_TRIGGER_MASK)
 		irq_flags = ires->flags & IRQF_TRIGGER_MASK;
 
 	ret = smc_request_attrib(pdev, ndev);