From: Siva Rebbagondla <[email protected]>

At SDIO restore ieee80211_restart_hw() is getting called to restart all
MAC operations. This step is not required.
Returning 1 from mac80211_resume() will serve this purpose.

Signed-off-by: Siva Rebbagondla <[email protected]>
---
 drivers/net/wireless/rsi/rsi_91x_mac80211.c | 8 ++++++--
 drivers/net/wireless/rsi/rsi_91x_sdio.c     | 1 -
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/rsi/rsi_91x_mac80211.c 
b/drivers/net/wireless/rsi/rsi_91x_mac80211.c
index aded1ae..8d1282f 100644
--- a/drivers/net/wireless/rsi/rsi_91x_mac80211.c
+++ b/drivers/net/wireless/rsi/rsi_91x_mac80211.c
@@ -1938,8 +1938,12 @@ static int rsi_mac80211_resume(struct ieee80211_hw *hw)
 
        rsi_dbg(INFO_ZONE, "%s: mac80211 resume\n", __func__);
 
-       if (common->hibernate_resume)
-               return 0;
+       if (common->hibernate_resume) {
+               /* Device need a complete restart of all MAC operations.
+                * returning 1 will serve this purpose.
+                */
+               return 1;
+       }
 
        mutex_lock(&common->mutex);
        rsi_send_wowlan_request(common, 0, 0);
diff --git a/drivers/net/wireless/rsi/rsi_91x_sdio.c 
b/drivers/net/wireless/rsi/rsi_91x_sdio.c
index 4005c1d..43e8a0d 100644
--- a/drivers/net/wireless/rsi/rsi_91x_sdio.c
+++ b/drivers/net/wireless/rsi/rsi_91x_sdio.c
@@ -1393,7 +1393,6 @@ static int rsi_restore(struct device *dev)
        common->iface_down = true;
 
        adapter->sc_nvifs = 0;
-       ieee80211_restart_hw(adapter->hw);
 
        common->wow_flags = 0;
        common->iface_down = false;
-- 
2.5.5

Reply via email to