* @WIPHY_FLAG_SUPPORTS_EXT_KCK_32: The device supports 32-byte KCK keys.
  * @WIPHY_FLAG_NOTIFY_REGDOM_BY_DRIVER: The device could handle reg notify for
  *     NL80211_REGDOM_SET_BY_DRIVER.
+ * @WIPHY_FLAG_CHANNEL_CHANGE_ON_BEACON: reg_call_notifier() is called if driver
+ *     set this flag to update channels on beacon hints.
  */
 enum wiphy_flags {
        WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK         = BIT(0),
        WIPHY_FLAG_SUPPORTS_5_10_MHZ            = BIT(22),
        WIPHY_FLAG_HAS_CHANNEL_SWITCH           = BIT(23),
        WIPHY_FLAG_NOTIFY_REGDOM_BY_DRIVER      = BIT(24),
+       WIPHY_FLAG_CHANNEL_CHANGE_ON_BEACON     = BIT(25),
 };
 
 /**
 
        return false;
 }
 
+static void reg_call_notifier(struct wiphy *wiphy,
+                             struct regulatory_request *request)
+{
+       if (wiphy->reg_notifier)
+               wiphy->reg_notifier(wiphy, request);
+}
+
 static void handle_reg_beacon(struct wiphy *wiphy, unsigned int chan_idx,
                              struct reg_beacon *reg_beacon)
 {
        struct ieee80211_channel *chan;
        bool channel_changed = false;
        struct ieee80211_channel chan_before;
+       struct regulatory_request *lr = get_last_request();
 
        sband = wiphy->bands[reg_beacon->chan.band];
        chan = &sband->channels[chan_idx];
                channel_changed = true;
        }
 
-       if (channel_changed)
+       if (channel_changed) {
                nl80211_send_beacon_hint_event(wiphy, &chan_before, chan);
+               if (wiphy->flags & WIPHY_FLAG_CHANNEL_CHANGE_ON_BEACON)
+                       reg_call_notifier(wiphy, lr);
+       }
 }
 
 /*
                reg_process_ht_flags_band(wiphy, wiphy->bands[band]);
 }
 
-static void reg_call_notifier(struct wiphy *wiphy,
-                             struct regulatory_request *request)
-{
-       if (wiphy->reg_notifier)
-               wiphy->reg_notifier(wiphy, request);
-}
-
 static bool reg_wdev_chan_valid(struct wiphy *wiphy, struct wireless_dev *wdev)
 {
        struct cfg80211_chan_def chandef = {};