diff options
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.patch | 17 |
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); |