diff options
Diffstat (limited to 'target/linux/omap/patches-3.13/901-wlcore-set-irq_flags-in-the-board-files.patch')
-rw-r--r-- | target/linux/omap/patches-3.13/901-wlcore-set-irq_flags-in-the-board-files.patch | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/target/linux/omap/patches-3.13/901-wlcore-set-irq_flags-in-the-board-files.patch b/target/linux/omap/patches-3.13/901-wlcore-set-irq_flags-in-the-board-files.patch deleted file mode 100644 index 91f889f81e..0000000000 --- a/target/linux/omap/patches-3.13/901-wlcore-set-irq_flags-in-the-board-files.patch +++ /dev/null @@ -1,126 +0,0 @@ -The platform_quirk element in the platform data was used to change the -way the IRQ is triggered. When set, the EDGE_IRQ quirk would change -the irqflags used and treat edge trigger differently from the rest. - -Instead of hiding this irq flag setting behind the quirk, have the -board files set the flags during initialization. This will be more -meaningful than driver-specific quirks when we switch to DT. - -Additionally, fix missing gpio_request() calls in the boarding files -(so that setting the flags actually works). - -Cc: Tony Lindgren <tony@atomide.com> -Cc: Sekhar Nori <nsekhar@ti.com> -Signed-off-by: Luciano Coelho <coelho@ti.com> -Reviewed-by: Felipe Balbi <balbi@ti.com> -Acked-by: Sekhar Nori <nsekhar@ti.com> - ---- - arch/arm/mach-davinci/board-da850-evm.c | 8 +++++++- - arch/arm/mach-omap2/board-omap3evm.c | 19 ++++++++++++++++++ - arch/arm/mach-omap2/board-zoom-peripherals.c | 30 +++++++++++++++++++++++++--- - drivers/net/wireless/ti/wlcore/debugfs.c | 2 +- - drivers/net/wireless/ti/wlcore/main.c | 17 ++++++++-------- - drivers/net/wireless/ti/wlcore/wlcore.h | 5 ++--- - include/linux/wl12xx.h | 4 ---- - 7 files changed, 64 insertions(+), 21 deletions(-) - ---- a/drivers/net/wireless/ti/wlcore/main.c -+++ b/drivers/net/wireless/ti/wlcore/main.c -@@ -27,6 +27,7 @@ - #include <linux/vmalloc.h> - #include <linux/wl12xx.h> - #include <linux/interrupt.h> -+#include <linux/irq.h> - - #include "wlcore.h" - #include "debug.h" -@@ -529,7 +530,7 @@ static int wlcore_irq_locked(struct wl12 - * In case edge triggered interrupt must be used, we cannot iterate - * more than once without introducing race conditions with the hardirq. - */ -- if (wl->platform_quirks & WL12XX_PLATFORM_QUIRK_EDGE_IRQ) -+ if (wl->irq_flags & IRQF_TRIGGER_RISING) - loopcount = 1; - - wl1271_debug(DEBUG_IRQ, "IRQ work"); -@@ -5893,7 +5894,6 @@ struct ieee80211_hw *wlcore_alloc_hw(siz - wl->ap_ps_map = 0; - wl->ap_fw_ps_map = 0; - wl->quirks = 0; -- wl->platform_quirks = 0; - wl->system_hlid = WL12XX_SYSTEM_HLID; - wl->active_sta_count = 0; - wl->active_link_count = 0; -@@ -6034,7 +6034,7 @@ static void wlcore_nvs_cb(const struct f - struct platform_device *pdev = wl->pdev; - struct wlcore_platdev_data *pdev_data = dev_get_platdata(&pdev->dev); - struct wl12xx_platform_data *pdata = pdev_data->pdata; -- unsigned long irqflags; -+ - int ret; - irq_handler_t hardirq_fn = NULL; - -@@ -6062,18 +6062,17 @@ static void wlcore_nvs_cb(const struct f - wlcore_adjust_conf(wl); - - wl->irq = platform_get_irq(pdev, 0); -- wl->platform_quirks = pdata->platform_quirks; - wl->if_ops = pdev_data->if_ops; - -- if (wl->platform_quirks & WL12XX_PLATFORM_QUIRK_EDGE_IRQ) { -- irqflags = IRQF_TRIGGER_RISING; -- hardirq_fn = wlcore_hardirq; -- } else { -- irqflags = IRQF_TRIGGER_HIGH | IRQF_ONESHOT; -- } -+ wl->irq_flags = irq_get_trigger_type(wl->irq); -+ -+ hardirq_fn = wlcore_hardirq; -+ -+ /* Since we don't use the primary handler, we must set ONESHOT */ -+ wl->irq_flags |= IRQF_ONESHOT; - - ret = request_threaded_irq(wl->irq, hardirq_fn, wlcore_irq, -- irqflags, pdev->name, wl); -+ wl->irq_flags, pdev->name, wl); - if (ret < 0) { - wl1271_error("request_irq() failed: %d", ret); - goto out_free_nvs; ---- a/drivers/net/wireless/ti/wlcore/wlcore.h -+++ b/drivers/net/wireless/ti/wlcore/wlcore.h -@@ -186,6 +186,8 @@ struct wl1271 { - - int irq; - -+ int irq_flags; -+ - spinlock_t wl_lock; - - enum wlcore_state state; -@@ -393,9 +395,6 @@ struct wl1271 { - /* Quirks of specific hardware revisions */ - unsigned int quirks; - -- /* Platform limitations */ -- unsigned int platform_quirks; -- - /* number of currently active RX BA sessions */ - int ba_rx_session_count; - ---- a/include/linux/wl12xx.h -+++ b/include/linux/wl12xx.h -@@ -59,13 +59,9 @@ struct wl12xx_platform_data { - int irq; - int board_ref_clock; - int board_tcxo_clock; -- unsigned long platform_quirks; - bool pwr_in_suspend; - }; - --/* Platform does not support level trigger interrupts */ --#define WL12XX_PLATFORM_QUIRK_EDGE_IRQ BIT(0) -- - #ifdef CONFIG_WILINK_PLATFORM_DATA - - int wl12xx_set_platform_data(const struct wl12xx_platform_data *data); |