ATH_CHANCTX_EVENT_BEACON_SENT,
        ATH_CHANCTX_EVENT_TSF_TIMER,
        ATH_CHANCTX_EVENT_BEACON_RECEIVED,
-       ATH_CHANCTX_EVENT_ASSOC,
+       ATH_CHANCTX_EVENT_AUTHORIZED,
        ATH_CHANCTX_EVENT_SWITCH,
        ATH_CHANCTX_EVENT_ASSIGN,
        ATH_CHANCTX_EVENT_UNASSIGN,
 
                case_rtn_string(ATH_CHANCTX_EVENT_BEACON_SENT);
                case_rtn_string(ATH_CHANCTX_EVENT_TSF_TIMER);
                case_rtn_string(ATH_CHANCTX_EVENT_BEACON_RECEIVED);
-               case_rtn_string(ATH_CHANCTX_EVENT_ASSOC);
+               case_rtn_string(ATH_CHANCTX_EVENT_AUTHORIZED);
                case_rtn_string(ATH_CHANCTX_EVENT_SWITCH);
                case_rtn_string(ATH_CHANCTX_EVENT_ASSIGN);
                case_rtn_string(ATH_CHANCTX_EVENT_UNASSIGN);
 
                ath_chanctx_setup_timer(sc, tsf_time);
                break;
-       case ATH_CHANCTX_EVENT_ASSOC:
+       case ATH_CHANCTX_EVENT_AUTHORIZED:
                if (sc->sched.state != ATH_CHANCTX_STATE_FORCE_ACTIVE ||
                    avp->chanctx != sc->cur_chan)
                        break;
 
                        "Remove station: %pM\n", sta->addr);
        }
 
+       if (ath9k_is_chanctx_enabled()) {
+               if (old_state == IEEE80211_STA_ASSOC &&
+                   new_state == IEEE80211_STA_AUTHORIZED)
+                       ath_chanctx_event(sc, vif,
+                                         ATH_CHANCTX_EVENT_AUTHORIZED);
+       }
+
        return ret;
 }
 
                avp->assoc = bss_conf->assoc;
 
                ath9k_calculate_summary_state(sc, avp->chanctx);
-
-               if (ath9k_is_chanctx_enabled()) {
-                       if (bss_conf->assoc)
-                               ath_chanctx_event(sc, vif,
-                                                 ATH_CHANCTX_EVENT_ASSOC);
-               }
        }
 
        if (changed & BSS_CHANGED_IBSS) {