wl12xx: add elp wakeup/sleep calls to add_interface
authorEliad Peller <eliad@wizery.com>
Mon, 10 Oct 2011 08:13:16 +0000 (10:13 +0200)
committerLuciano Coelho <coelho@ti.com>
Tue, 11 Oct 2011 12:29:56 +0000 (15:29 +0300)
add_interface might be called while the chip is
in elp. add elp_wakeup/sleep calls to handle it.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
drivers/net/wireless/wl12xx/main.c

index cd2722562e60f5b7cb780cfb8dc271f0943e5076..6e6ac63fb8cd3e41903b5cae049687cf7bec95cc 100644 (file)
@@ -2115,6 +2115,10 @@ static int wl1271_op_add_interface(struct ieee80211_hw *hw,
                     ieee80211_vif_type_p2p(vif), vif->addr);
 
        mutex_lock(&wl->mutex);
+       ret = wl1271_ps_elp_wakeup(wl);
+       if (ret < 0)
+               goto out_unlock;
+
        if (wl->vif) {
                wl1271_debug(DEBUG_MAC80211,
                             "multiple vifs are not supported yet");
@@ -2195,6 +2199,8 @@ static int wl1271_op_add_interface(struct ieee80211_hw *hw,
        else
                wl->sta_count++;
 out:
+       wl1271_ps_elp_sleep(wl);
+out_unlock:
        mutex_unlock(&wl->mutex);
 
        mutex_lock(&wl_list_mutex);