Skip to content

Commit 00f823b

Browse files
ilanpeer2jmberg-intel
authored andcommitted
wifi: mac80211: Rename and update IEEE80211_VIF_DISABLE_SMPS_OVERRIDE
EMLSR operation and SMPS operation cannot coexist. Thus, when EMLSR is enabled, all SMPS signaling towards the AP should be stopped (it is expected that the AP will consider SMPS to be off). Rename IEEE80211_VIF_DISABLE_SMPS_OVERRIDE to IEEE80211_VIF_EML_ACTIVE and use the flag as an indication from the driver that EMLSR is enabled. When EMLSR is enabled SMPS flows towards the AP MLD should be stopped. Signed-off-by: Ilan Peer <[email protected]> Signed-off-by: Gregory Greenman <[email protected]> Link: https://lore.kernel.org/r/20230928172905.fb2c2f9a0645.If6df5357568abd623a081f0f33b07e63fb8bba99@changeid Signed-off-by: Johannes Berg <[email protected]>
1 parent c942398 commit 00f823b

File tree

4 files changed

+16
-7
lines changed

4 files changed

+16
-7
lines changed

drivers/net/wireless/intel/iwlwifi/mvm/mld-mac80211.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,8 @@ static int iwl_mvm_esr_mode_active(struct iwl_mvm *mvm,
240240

241241
mvmvif->esr_active = true;
242242

243-
/* Disable SMPS overrideing by user */
244-
vif->driver_flags |= IEEE80211_VIF_DISABLE_SMPS_OVERRIDE;
243+
/* Indicate to mac80211 that EML is enabled */
244+
vif->driver_flags |= IEEE80211_VIF_EML_ACTIVE;
245245

246246
iwl_mvm_update_smps_on_active_links(mvm, vif, IWL_MVM_SMPS_REQ_FW,
247247
IEEE80211_SMPS_OFF);
@@ -399,7 +399,7 @@ static int iwl_mvm_esr_mode_inactive(struct iwl_mvm *mvm,
399399

400400
mvmvif->esr_active = false;
401401

402-
vif->driver_flags &= ~IEEE80211_VIF_DISABLE_SMPS_OVERRIDE;
402+
vif->driver_flags &= ~IEEE80211_VIF_EML_ACTIVE;
403403

404404
iwl_mvm_update_smps_on_active_links(mvm, vif, IWL_MVM_SMPS_REQ_FW,
405405
IEEE80211_SMPS_AUTOMATIC);

include/net/mac80211.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1767,15 +1767,15 @@ struct ieee80211_channel_switch {
17671767
* @IEEE80211_VIF_GET_NOA_UPDATE: request to handle NOA attributes
17681768
* and send P2P_PS notification to the driver if NOA changed, even
17691769
* this is not pure P2P vif.
1770-
* @IEEE80211_VIF_DISABLE_SMPS_OVERRIDE: disable user configuration of
1771-
* SMPS mode via debugfs.
1770+
* @IEEE80211_VIF_EML_ACTIVE: The driver indicates that EML operation is
1771+
* enabled for the interface.
17721772
*/
17731773
enum ieee80211_vif_flags {
17741774
IEEE80211_VIF_BEACON_FILTER = BIT(0),
17751775
IEEE80211_VIF_SUPPORTS_CQM_RSSI = BIT(1),
17761776
IEEE80211_VIF_SUPPORTS_UAPSD = BIT(2),
17771777
IEEE80211_VIF_GET_NOA_UPDATE = BIT(3),
1778-
IEEE80211_VIF_DISABLE_SMPS_OVERRIDE = BIT(4),
1778+
IEEE80211_VIF_EML_ACTIVE = BIT(4),
17791779
};
17801780

17811781

net/mac80211/cfg.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3158,6 +3158,12 @@ int __ieee80211_request_smps_mgd(struct ieee80211_sub_if_data *sdata,
31583158
old_req = link->u.mgd.req_smps;
31593159
link->u.mgd.req_smps = smps_mode;
31603160

3161+
/* The driver indicated that EML is enabled for the interface, which
3162+
* implies that SMPS flows towards the AP should be stopped.
3163+
*/
3164+
if (sdata->vif.driver_flags & IEEE80211_VIF_EML_ACTIVE)
3165+
return 0;
3166+
31613167
if (old_req == smps_mode &&
31623168
smps_mode != IEEE80211_SMPS_AUTOMATIC)
31633169
return 0;

net/mac80211/debugfs_netdev.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,10 @@ static int ieee80211_set_smps(struct ieee80211_link_data *link,
323323
struct ieee80211_sub_if_data *sdata = link->sdata;
324324
struct ieee80211_local *local = sdata->local;
325325

326-
if (sdata->vif.driver_flags & IEEE80211_VIF_DISABLE_SMPS_OVERRIDE)
326+
/* The driver indicated that EML is enabled for the interface, thus do
327+
* not allow to override the SMPS state.
328+
*/
329+
if (sdata->vif.driver_flags & IEEE80211_VIF_EML_ACTIVE)
327330
return -EOPNOTSUPP;
328331

329332
if (!(local->hw.wiphy->features & NL80211_FEATURE_STATIC_SMPS) &&

0 commit comments

Comments
 (0)