]> www.infradead.org Git - users/hch/misc.git/commitdiff
wifi: drivers: indicate support for attributes in NL80211_CMD_SET_BSS
authorArend van Spriel <arend.vanspriel@broadcom.com>
Sun, 17 Aug 2025 19:04:33 +0000 (21:04 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 4 Sep 2025 09:19:02 +0000 (11:19 +0200)
The command NL80211_CMD_SET_BSS has a number of individual attributes
and the driver can advertise which of those it will handle when it is
changed by user-space. For drivers providing an empty .change_bss()
the callback has been removed.

Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Link: https://patch.msgid.link/20250817190435.1495094-3-arend.vanspriel@broadcom.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/ath/wil6210/cfg80211.c
drivers/net/wireless/microchip/wilc1000/cfg80211.c
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c
net/mac80211/main.c

index 7703a0933a14fd58666cc11c9465911071954a37..7218fe70f3bcfd78c1bd2f6dcfb09a29da243c38 100644 (file)
@@ -2708,6 +2708,7 @@ static void wil_wiphy_init(struct wiphy *wiphy)
        wiphy->n_cipher_suites = ARRAY_SIZE(wil_cipher_suites);
        wiphy->mgmt_stypes = wil_mgmt_stypes;
        wiphy->features |= NL80211_FEATURE_SK_TX_STATUS;
+       wiphy->bss_param_support = WIPHY_BSS_PARAM_AP_ISOLATE;
 
        wiphy->n_vendor_commands = ARRAY_SIZE(wil_nl80211_vendor_commands);
        wiphy->vendor_commands = wil_nl80211_vendor_commands;
index a395829ebadf0964b13bc3c6c5bf16c501ce19ee..c39e7f313ea1e2e3efb34ad6485c9c2225b3a9e7 100644 (file)
@@ -794,12 +794,6 @@ static int get_station(struct wiphy *wiphy, struct net_device *dev,
        return 0;
 }
 
-static int change_bss(struct wiphy *wiphy, struct net_device *dev,
-                     struct bss_parameters *params)
-{
-       return 0;
-}
-
 static int set_wiphy_params(struct wiphy *wiphy, int radio_idx, u32 changed)
 {
        int ret = -EINVAL;
@@ -1709,7 +1703,6 @@ static const struct cfg80211_ops wilc_cfg80211_ops = {
        .change_station = change_station,
        .get_station = get_station,
        .dump_station = dump_station,
-       .change_bss = change_bss,
        .set_wiphy_params = set_wiphy_params,
 
        .external_auth = external_auth,
index ac3d085808e97da24f7dafb9389936e0510de8f8..315bab3737294bb06df6da8435db881a3e8ea03a 100644 (file)
@@ -2441,13 +2441,6 @@ exit:
        return ret;
 }
 
-static int     cfg80211_rtw_change_bss(struct wiphy *wiphy,
-                                       struct net_device *ndev,
-                                       struct bss_parameters *params)
-{
-       return 0;
-}
-
 void rtw_cfg80211_rx_action(struct adapter *adapter, u8 *frame, uint frame_len, const char *msg)
 {
        s32 freq;
@@ -2704,7 +2697,6 @@ static struct cfg80211_ops rtw_cfg80211_ops = {
        .del_station = cfg80211_rtw_del_station,
        .change_station = cfg80211_rtw_change_station,
        .dump_station = cfg80211_rtw_dump_station,
-       .change_bss = cfg80211_rtw_change_bss,
 
        .mgmt_tx = cfg80211_rtw_mgmt_tx,
 };
index beee51354931165cac9e0d864c5ca2babaaf92b9..e8c85aa77c5670e0d788d587c381bc6253a4e171 100644 (file)
@@ -862,6 +862,14 @@ struct ieee80211_hw *ieee80211_alloc_hw_nm(size_t priv_data_len,
        if (emulate_chanctx || ops->remain_on_channel)
                wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
 
+       wiphy->bss_param_support = WIPHY_BSS_PARAM_CTS_PROT |
+                                  WIPHY_BSS_PARAM_SHORT_PREAMBLE |
+                                  WIPHY_BSS_PARAM_SHORT_SLOT_TIME |
+                                  WIPHY_BSS_PARAM_BASIC_RATES |
+                                  WIPHY_BSS_PARAM_AP_ISOLATE |
+                                  WIPHY_BSS_PARAM_HT_OPMODE |
+                                  WIPHY_BSS_PARAM_P2P_CTWINDOW |
+                                  WIPHY_BSS_PARAM_P2P_OPPPS;
        wiphy->features |= NL80211_FEATURE_SK_TX_STATUS |
                           NL80211_FEATURE_SAE |
                           NL80211_FEATURE_HT_IBSS |