mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 04:56:13 +02:00
wifi: iwlwifi: mvm: allow UAPSD when in SCM
Allow UAPSD when P2P and BSS interfaces share the same channel. Signed-off-by: Avraham Stern <avraham.stern@intel.com> Reviewed-by: Luciano Coelho <luciano.coelho@intel.com> Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Link: https://msgid.link/20240510170500.1ec19d432497.Id6de5337c878fa70e85bfcf6f4e0e34ce60756fb@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
7aea718037
commit
42884d2c2f
|
|
@ -212,7 +212,7 @@ static void iwl_mvm_power_configure_uapsd(struct iwl_mvm *mvm,
|
|||
}
|
||||
|
||||
struct iwl_allow_uapsd_iface_iterator_data {
|
||||
struct ieee80211_vif *exclude_vif;
|
||||
struct ieee80211_vif *current_vif;
|
||||
bool allow_uapsd;
|
||||
};
|
||||
|
||||
|
|
@ -220,9 +220,12 @@ static void iwl_mvm_allow_uapsd_iterator(void *_data, u8 *mac,
|
|||
struct ieee80211_vif *vif)
|
||||
{
|
||||
struct iwl_allow_uapsd_iface_iterator_data *data = _data;
|
||||
struct iwl_mvm_vif *other_mvmvif = iwl_mvm_vif_from_mac80211(vif);
|
||||
struct iwl_mvm_vif *curr_mvmvif =
|
||||
iwl_mvm_vif_from_mac80211(data->current_vif);
|
||||
|
||||
/* exclude the given vif */
|
||||
if (vif == data->exclude_vif)
|
||||
if (vif == data->current_vif)
|
||||
return;
|
||||
|
||||
switch (vif->type) {
|
||||
|
|
@ -232,7 +235,12 @@ static void iwl_mvm_allow_uapsd_iterator(void *_data, u8 *mac,
|
|||
data->allow_uapsd = false;
|
||||
break;
|
||||
case NL80211_IFTYPE_STATION:
|
||||
if (vif->cfg.assoc)
|
||||
/* allow UAPSD if P2P interface and BSS station interface share
|
||||
* the same channel.
|
||||
*/
|
||||
if (vif->cfg.assoc && other_mvmvif->deflink.phy_ctxt &&
|
||||
curr_mvmvif->deflink.phy_ctxt &&
|
||||
other_mvmvif->deflink.phy_ctxt->id != curr_mvmvif->deflink.phy_ctxt->id)
|
||||
data->allow_uapsd = false;
|
||||
break;
|
||||
|
||||
|
|
@ -246,7 +254,7 @@ static bool iwl_mvm_power_allow_uapsd(struct iwl_mvm *mvm,
|
|||
{
|
||||
struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
|
||||
struct iwl_allow_uapsd_iface_iterator_data data = {
|
||||
.exclude_vif = vif,
|
||||
.current_vif = vif,
|
||||
.allow_uapsd = true,
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user