aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/902-wlcore-remove-pwr_in_suspend-from-platform-data.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/mac80211/patches/902-wlcore-remove-pwr_in_suspend-from-platform-data.patch')
-rw-r--r--package/mac80211/patches/902-wlcore-remove-pwr_in_suspend-from-platform-data.patch48
1 files changed, 48 insertions, 0 deletions
diff --git a/package/mac80211/patches/902-wlcore-remove-pwr_in_suspend-from-platform-data.patch b/package/mac80211/patches/902-wlcore-remove-pwr_in_suspend-from-platform-data.patch
new file mode 100644
index 0000000000..639437754b
--- /dev/null
+++ b/package/mac80211/patches/902-wlcore-remove-pwr_in_suspend-from-platform-data.patch
@@ -0,0 +1,48 @@
+The pwr_in_suspend flag depends on the MMC settings which can be
+retrieved from the SDIO subsystem, so it doesn't need to be part of
+the platform data structure. Move it to the platform device data that
+is passed from SDIO to wlcore.
+
+Signed-off-by: Luciano Coelho <coelho@ti.com>
+Reviewed-by: Felipe Balbi <balbi@ti.com>
+
+--- a/drivers/net/wireless/ti/wlcore/main.c
++++ b/drivers/net/wireless/ti/wlcore/main.c
+@@ -6074,7 +6074,6 @@ static void wlcore_nvs_cb(const struct f
+ struct wl1271 *wl = context;
+ 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;
+
+ int ret;
+ irq_handler_t hardirq_fn = NULL;
+@@ -6127,7 +6126,7 @@ static void wlcore_nvs_cb(const struct f
+ if (!ret) {
+ wl->irq_wake_enabled = true;
+ device_init_wakeup(wl->dev, 1);
+- if (pdata->pwr_in_suspend)
++ if (pdev_data->pwr_in_suspend)
+ wl->hw->wiphy->wowlan = &wlcore_wowlan_support;
+ }
+ #endif
+--- a/drivers/net/wireless/ti/wlcore/sdio.c
++++ b/drivers/net/wireless/ti/wlcore/sdio.c
+@@ -260,7 +260,7 @@ static int wl1271_probe(struct sdio_func
+ dev_dbg(glue->dev, "sdio PM caps = 0x%x\n", mmcflags);
+
+ if (mmcflags & MMC_PM_KEEP_POWER)
+- pdev_data->pdata->pwr_in_suspend = true;
++ pdev_data->pwr_in_suspend = true;
+
+ sdio_set_drvdata(func, glue);
+
+--- a/drivers/net/wireless/ti/wlcore/wlcore_i.h
++++ b/drivers/net/wireless/ti/wlcore/wlcore_i.h
+@@ -209,6 +209,7 @@ struct wl1271_if_operations {
+ struct wlcore_platdev_data {
+ struct wl12xx_platform_data *pdata;
+ struct wl1271_if_operations *if_ops;
++ bool pwr_in_suspend;
+ };
+
+ #define MAX_NUM_KEYS 14