diff options
author | Karun Eagalapati | 2017-10-27 13:25:56 +0200 |
---|---|---|
committer | Kalle Valo | 2017-10-30 11:50:12 +0100 |
commit | b6c8d06c8a6465c054befd416d8b067ad495fa06 (patch) | |
tree | e3c2e9f0072ca5e498f97da6ba79c884fe7fa7a2 /drivers/net/wireless/rsi/rsi_91x_mgmt.c | |
parent | rsi: sdio: add WOWLAN support for S3 suspend state (diff) | |
download | kernel-qcow2-linux-b6c8d06c8a6465c054befd416d8b067ad495fa06.tar.gz kernel-qcow2-linux-b6c8d06c8a6465c054befd416d8b067ad495fa06.tar.xz kernel-qcow2-linux-b6c8d06c8a6465c054befd416d8b067ad495fa06.zip |
rsi: sdio: Add WOWLAN support for S4 hibernate state
We are disabling of interrupts from firmware in freeze handler.
Also setting power management capability KEEP_MMC_POWER to make
device wakeup for WoWLAN trigger.
At restore, we observed a device reset on some platforms. Hence
reloading of firmware and device initialization is performed.
Signed-off-by: Karun Eagalapati <karun256@gmail.com>
Signed-off-by: Amitkumar Karwar <amit.karwar@redpinesignals.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/rsi/rsi_91x_mgmt.c')
-rw-r--r-- | drivers/net/wireless/rsi/rsi_91x_mgmt.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/wireless/rsi/rsi_91x_mgmt.c b/drivers/net/wireless/rsi/rsi_91x_mgmt.c index 1446ee3581d0..d38a09f15742 100644 --- a/drivers/net/wireless/rsi/rsi_91x_mgmt.c +++ b/drivers/net/wireless/rsi/rsi_91x_mgmt.c @@ -1761,7 +1761,11 @@ static int rsi_handle_ta_confirm_type(struct rsi_common *common, common->bb_rf_prog_count--; if (!common->bb_rf_prog_count) { common->fsm_state = FSM_MAC_INIT_DONE; - return rsi_mac80211_attach(common); + if (common->reinit_hw) { + complete(&common->wlan_init_completion); + } else { + return rsi_mac80211_attach(common); + } } } else { rsi_dbg(INFO_ZONE, @@ -1839,6 +1843,7 @@ int rsi_mgmt_pkt_recv(struct rsi_common *common, u8 *msg) case TA_CONFIRM_TYPE: return rsi_handle_ta_confirm_type(common, msg); case CARD_READY_IND: + common->hibernate_resume = false; rsi_dbg(FSM_ZONE, "%s: Card ready indication received\n", __func__); return rsi_handle_card_ready(common, msg); |