aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
authorAjay Singh <ajay.kathat@microchip.com>2019-09-10 07:46:07 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-09-12 10:37:26 +0100
commit9a4c56be67f8153d8f8459c4c7bbbbc360d5fe9e (patch)
tree36d7f29a0a978dbb8440ed3b28855c84b0ffe6f5 /drivers/staging
parentstaging: wilc1000: remove unused interrupt status handling code (diff)
downloadlinux-dev-9a4c56be67f8153d8f8459c4c7bbbbc360d5fe9e.tar.xz
linux-dev-9a4c56be67f8153d8f8459c4c7bbbbc360d5fe9e.zip
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>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/wilc1000/wilc_netdev.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/staging/wilc1000/wilc_netdev.c b/drivers/staging/wilc1000/wilc_netdev.c
index cd11c35adcfe..508acb8bb089 100644
--- a/drivers/staging/wilc1000/wilc_netdev.c
+++ b/drivers/staging/wilc1000/wilc_netdev.c
@@ -60,7 +60,7 @@ static int init_irq(struct net_device *dev)
ret = request_threaded_irq(wl->dev_irq_num, isr_uh_routine,
isr_bh_routine,
- IRQF_TRIGGER_LOW | IRQF_ONESHOT,
+ IRQF_TRIGGER_FALLING | IRQF_ONESHOT,
"WILC_IRQ", dev);
if (ret < 0)
netdev_err(dev, "Failed to request IRQ\n");