staging: brcm80211: handle change in association state from mac80211
authorArend van Spriel <arend@broadcom.com>
Thu, 10 Feb 2011 11:03:48 +0000 (12:03 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 18 Feb 2011 20:52:36 +0000 (12:52 -0800)
The driver has flags for association state which are now being set
according to notification from mac80211.

Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Reviewed-by: Brett Rudley <brudley@broadcom.com>
Reviewed-by: Henry Ptasinski <henryp@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c
drivers/staging/brcm80211/brcmsmac/wlc_pub.h

index e485280c9c5d2af38d511ae7ae862259091f2b79..a51e511ce69fc67ec9cb9ff012b7a2a9ea795b7a 100644 (file)
@@ -333,6 +333,7 @@ wl_ops_bss_info_changed(struct ieee80211_hw *hw,
                 */
                WL_ERROR("%s: %s: %sassociated\n", KBUILD_MODNAME, __func__,
                         info->assoc ? "" : "dis");
+               wlc_associate_upd(wl->wlc, info->assoc);
        }
        if (changed & BSS_CHANGED_ERP_CTS_PROT) {
                /* CTS protection changed */
index d2b86a6453d13ce305eefa584272e29e5eb02982..76d78c18bf8a7221f3953ceceb99f37139a7bca1 100644 (file)
@@ -8590,3 +8590,9 @@ void wlc_scan_stop(struct wlc_info *wlc)
 {
        wlc_phy_hold_upd(wlc->band->pi, PHY_HOLD_FOR_SCAN, false);
 }
+
+void wlc_associate_upd(struct wlc_info *wlc, bool state)
+{
+       wlc->pub->associated = state;
+       wlc->cfg->associated = state;
+}
index 4d0e0b13e3a9d4fb524448e00a05b194ef109c58..4b43c3ce42e62ca88b672fe87c86bf4430287de3 100644 (file)
@@ -563,6 +563,7 @@ extern void wlc_enable_mac(struct wlc_info *wlc);
 extern u16 wlc_rate_shm_offset(struct wlc_info *wlc, u8 rate);
 extern u32 wlc_get_rspec_history(struct wlc_bsscfg *cfg);
 extern u32 wlc_get_current_highest_rate(struct wlc_bsscfg *cfg);
+extern void wlc_associate_upd(struct wlc_info *wlc, bool state);
 extern void wlc_scan_start(struct wlc_info *wlc);
 extern void wlc_scan_stop(struct wlc_info *wlc);