* @n_counter_offsets_beacon: number of csa counters the beacon (tail)
  * @n_counter_offsets_presp: number of csa counters in the probe response
  * @beacon_after: beacon data to be used on the new channel
+ * @unsol_bcast_probe_resp: Unsolicited broadcast probe response parameters
  * @radar_required: whether radar detection is required on the new channel
  * @block_tx: whether transmissions should be blocked while changing
  * @count: number of beacons until switch
        unsigned int n_counter_offsets_beacon;
        unsigned int n_counter_offsets_presp;
        struct cfg80211_beacon_data beacon_after;
+       struct cfg80211_unsol_bcast_probe_resp unsol_bcast_probe_resp;
        bool radar_required;
        bool block_tx;
        u8 count;
  * @counter_offset_beacon: offsets of the counters within the beacon (tail)
  * @counter_offset_presp: offsets of the counters within the probe response
  * @beacon_next: beacon data to be used after the color change
+ * @unsol_bcast_probe_resp: Unsolicited broadcast probe response parameters
  * @count: number of beacons until the color change
  * @color: the color used after the change
  * @link_id: defines the link on which color change is expected during MLO.
        u16 counter_offset_beacon;
        u16 counter_offset_presp;
        struct cfg80211_beacon_data beacon_next;
+       struct cfg80211_unsol_bcast_probe_resp unsol_bcast_probe_resp;
        u8 count;
        u8 color;
        u8 link_id;
 
        if (info->attrs[NL80211_ATTR_CH_SWITCH_BLOCK_TX])
                params.block_tx = true;
 
+       if ((wdev->iftype == NL80211_IFTYPE_AP ||
+            wdev->iftype == NL80211_IFTYPE_P2P_GO) &&
+           info->attrs[NL80211_ATTR_UNSOL_BCAST_PROBE_RESP]) {
+               err = nl80211_parse_unsol_bcast_probe_resp(
+                       rdev, info->attrs[NL80211_ATTR_UNSOL_BCAST_PROBE_RESP],
+                       ¶ms.unsol_bcast_probe_resp);
+               if (err)
+                       goto free;
+       }
+
        params.link_id = link_id;
        err = rdev_channel_switch(rdev, dev, ¶ms);
 
                params.counter_offset_presp = offset;
        }
 
+       if (info->attrs[NL80211_ATTR_UNSOL_BCAST_PROBE_RESP]) {
+               err = nl80211_parse_unsol_bcast_probe_resp(
+                       rdev, info->attrs[NL80211_ATTR_UNSOL_BCAST_PROBE_RESP],
+                       ¶ms.unsol_bcast_probe_resp);
+               if (err)
+                       goto out;
+       }
+
        params.link_id = nl80211_link_id(info->attrs);
        err = rdev_color_change(rdev, dev, ¶ms);