wifi: drivers: indicate support for attributes in NL80211_CMD_SET_BSS

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>
This commit is contained in:
Arend van Spriel 2025-08-17 21:04:33 +02:00 committed by Johannes Berg
parent 2418553491
commit 18abf7a05f
4 changed files with 9 additions and 15 deletions

View 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;

View 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,

View File

@ -2441,13 +2441,6 @@ static int cfg80211_rtw_dump_station(struct wiphy *wiphy,
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,
};

View 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 |