summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/bcmdhd/dhd_sdio.c
diff options
context:
space:
mode:
authorDong Aisheng <aisheng.dong@nxp.com>2016-09-01 20:49:45 +0800
committerAnson Huang <Anson.Huang@nxp.com>2017-06-08 19:24:35 +0800
commit633da685566341315fd207a7950d903c8a4a43eb (patch)
tree0ffdeae919bb0344aa379a6f5f0510fb8abf1533 /drivers/net/wireless/bcmdhd/dhd_sdio.c
parent1501f4c004c8830b67942f2d1f900a5ad2354b64 (diff)
MLK-13179-3 bcmdhd: add OOB support for all IMX6 and IMX7 platforms
Enable OOB feature for MX6Q/DL SDB, MX6SL EVK, MX6SX SDB, MX7D SDB boards. NOTE: The performance optimization option CONFIG_BCM4339 is disabled by default due to a WiFi driver issue that it breaks MX6SL EVK. If user want to test performance on the above platforms (except MX6SL EVK), CONFIG_BCM4339 has to be enabled manually. Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Diffstat (limited to 'drivers/net/wireless/bcmdhd/dhd_sdio.c')
-rw-r--r--drivers/net/wireless/bcmdhd/dhd_sdio.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/net/wireless/bcmdhd/dhd_sdio.c b/drivers/net/wireless/bcmdhd/dhd_sdio.c
index 7e0e7ab3b925..1207bb3b494e 100644
--- a/drivers/net/wireless/bcmdhd/dhd_sdio.c
+++ b/drivers/net/wireless/bcmdhd/dhd_sdio.c
@@ -381,6 +381,9 @@ typedef struct dhd_bus {
bool txglom_enable; /* Flag to indicate whether tx glom is enabled/disabled */
uint32 txglomsize; /* Glom size limitation */
void *pad_pkt;
+#ifdef HW_OOB
+ int bus_wake_on_resume; /* addition to fix suspend/resume powersave issue */
+#endif
} dhd_bus_t;
/* clkstate */
@@ -6536,7 +6539,13 @@ dhd_bus_watchdog(dhd_pub_t *dhdp)
DHD_TIMER(("%s: Enter\n", __FUNCTION__));
bus = dhdp->bus;
-
+#ifdef HW_OOB
+ /* this code segment added to fix suspend/resume powersave issue */
+ if (bus->bus_wake_on_resume) {
+ BUS_WAKE(bus);
+ bus->bus_wake_on_resume = 0;
+ }
+#endif
if (bus->dhd->dongle_reset)
return FALSE;
@@ -7508,6 +7517,11 @@ dhdsdio_resume(void *context)
bcmsdh_oob_intr_set(bus->sdh, TRUE);
}
#endif
+#ifdef HW_OOB
+ /* this code segment added to fix suspend/resume powersave issue */
+ bus->bus_wake_on_resume = 1;
+ dhd_os_wd_timer(bus->dhd, 1000);
+#endif
return 0;
}