|
@@ -687,6 +687,16 @@ static int wl1251_op_config(struct ieee80211_hw *hw, u32 changed)
|
|
|
wl->power_level = conf->power_level;
|
|
|
}
|
|
|
|
|
|
+ /*
|
|
|
+ * Tell stack that connection is lost because hw encryption isn't
|
|
|
+ * supported in monitor mode.
|
|
|
+ * This requires temporary enabling of the hw connection monitor flag
|
|
|
+ */
|
|
|
+ if ((changed & IEEE80211_CONF_CHANGE_MONITOR) && wl->vif) {
|
|
|
+ wl->hw->flags |= IEEE80211_HW_CONNECTION_MONITOR;
|
|
|
+ ieee80211_connection_loss(wl->vif);
|
|
|
+ }
|
|
|
+
|
|
|
out_sleep:
|
|
|
wl1251_ps_elp_sleep(wl);
|
|
|
|
|
@@ -1119,6 +1129,9 @@ static void wl1251_op_bss_info_changed(struct ieee80211_hw *hw,
|
|
|
}
|
|
|
|
|
|
if (changed & BSS_CHANGED_ASSOC) {
|
|
|
+ /* Disable temporary enabled hw connection monitor flag */
|
|
|
+ wl->hw->flags &= ~IEEE80211_HW_CONNECTION_MONITOR;
|
|
|
+
|
|
|
if (bss_conf->assoc) {
|
|
|
wl->beacon_int = bss_conf->beacon_int;
|
|
|
|