@@ -2509,6 +2509,19 @@ struct wpa_driver_ops {
* conditions.
*/
int (*radio_disable)(void *priv, int disabled);
+
+ /**
+ * switch_channel - Announce channel switch and migrate the GO to a
+ * given frequency.
+ * @priv: Private driver interface data
+ * @freq: frequency in MHz
+ * Returns: 0 on success, -1 on failure
+ *
+ * This function is used to move the GO to the legacy STA channel to avoid
+ * frequency conflict in single channel concurrency.
+ */
+ int (*switch_channel)(void *priv, unsigned int freq);
+#endif
};
@@ -665,4 +665,12 @@ static inline int wpa_drv_radio_disable(struct
wpa_supplicant *wpa_s,
return wpa_s->driver->radio_disable(wpa_s->drv_priv, disabled);
}
+static inline int wpa_drv_switch_channel(struct wpa_supplicant *wpa_s,
+ int freq)
+{
+ if (!wpa_s->driver->switch_channel)
+ return -1;
+ return wpa_s->driver->switch_channel(wpa_s->drv_priv, freq);
+}
+