staging: wilc1000: avoid twice IRQ handler execution for each single interrupt

The IRQ handler(isr_bh_routine()) was called twice for each interrupt
from firmware. The data was read completely during the first call and
the second call was doing nothing.
Now changed the IRQ flag from ‘level’ to ‘edge’ trigger i.e
IRQF_TRIGGER_LOW to IRQF_TRIGGER_FALLING to avoid extra interrupt
trigger.

Signed-off-by: Ajay Singh <ajay.kathat@microchip.com>
Link: https://lore.kernel.org/r/20190910074514.3073-2-ajay.kathat@microchip.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Ajay Singh 2019-09-10 07:46:07 +00:00 committed by Greg Kroah-Hartman
parent a76e712a5a
commit 9a4c56be67

View file

@ -60,7 +60,7 @@ static int init_irq(struct net_device *dev)
ret = request_threaded_irq(wl->dev_irq_num, isr_uh_routine, ret = request_threaded_irq(wl->dev_irq_num, isr_uh_routine,
isr_bh_routine, isr_bh_routine,
IRQF_TRIGGER_LOW | IRQF_ONESHOT, IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
"WILC_IRQ", dev); "WILC_IRQ", dev);
if (ret < 0) if (ret < 0)
netdev_err(dev, "Failed to request IRQ\n"); netdev_err(dev, "Failed to request IRQ\n");