Commit 18abf7a0 authored by Arend van Spriel's avatar Arend van Spriel Committed by Johannes Berg
Browse files

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: default avatarArend van Spriel <arend.vanspriel@broadcom.com>
Link: https://patch.msgid.link/20250817190435.1495094-3-arend.vanspriel@broadcom.com


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 24185534
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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;
+0 −7
Original line number Diff line number Diff line
@@ -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,
+0 −8
Original line number Diff line number Diff line
@@ -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,
};
+8 −0
Original line number Diff line number Diff line
@@ -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 |