summaryrefslogtreecommitdiff
path: root/patches/collateral-evolutions/network/09-threaded-irq
diff options
context:
space:
mode:
Diffstat (limited to 'patches/collateral-evolutions/network/09-threaded-irq')
-rw-r--r--patches/collateral-evolutions/network/09-threaded-irq/drivers_net_wireless_ti_wlcore_main.patch17
1 files changed, 10 insertions, 7 deletions
diff --git a/patches/collateral-evolutions/network/09-threaded-irq/drivers_net_wireless_ti_wlcore_main.patch b/patches/collateral-evolutions/network/09-threaded-irq/drivers_net_wireless_ti_wlcore_main.patch
index 05f61116..a271e478 100644
--- a/patches/collateral-evolutions/network/09-threaded-irq/drivers_net_wireless_ti_wlcore_main.patch
+++ b/patches/collateral-evolutions/network/09-threaded-irq/drivers_net_wireless_ti_wlcore_main.patch
@@ -1,31 +1,34 @@
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
-@@ -5932,13 +5932,24 @@ static void wlcore_nvs_cb(const struct f
+@@ -6036,15 +6036,27 @@ static void wlcore_nvs_cb(const struct f
wl->platform_quirks = pdata->platform_quirks;
wl->if_ops = pdev_data->if_ops;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
+ irqflags = IRQF_TRIGGER_RISING;
++ hardirq_fn = wlcore_hardirq;
+#else
- if (wl->platform_quirks & WL12XX_PLATFORM_QUIRK_EDGE_IRQ)
+ if (wl->platform_quirks & WL12XX_PLATFORM_QUIRK_EDGE_IRQ) {
irqflags = IRQF_TRIGGER_RISING;
- else
+ hardirq_fn = wlcore_hardirq;
+ } else {
irqflags = IRQF_TRIGGER_HIGH | IRQF_ONESHOT;
+ }
+#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
+ ret = compat_request_threaded_irq(&wl->irq_compat, wl->irq,
-+ NULL, wlcore_irq,
++ hardirq_fn, wlcore_irq,
+ irqflags,
+ pdev->name, wl);
+#else
- ret = request_threaded_irq(wl->irq, NULL, wlcore_irq,
+ ret = request_threaded_irq(wl->irq, hardirq_fn, wlcore_irq,
irqflags, pdev->name, wl);
+#endif
if (ret < 0) {
wl1271_error("request_irq() failed: %d", ret);
goto out_free_nvs;
-@@ -5984,7 +5995,11 @@ out_unreg:
+@@ -6090,7 +6102,11 @@ out_unreg:
wl1271_unregister_hw(wl);
out_irq:
@@ -37,7 +40,7 @@
out_free_nvs:
kfree(wl->nvs);
-@@ -6030,7 +6045,12 @@ int wlcore_remove(struct platform_device
+@@ -6136,7 +6152,12 @@ int wlcore_remove(struct platform_device
disable_irq_wake(wl->irq);
}
wl1271_unregister_hw(wl);