wifi: iwlwifi: mvm/mld: report non-HT frames as 20 MHz

Non-HT frames can only be encoded in 20 MHz, however, they
could be duplicated on all/some of the subchannels (mostly
used for RTS/CTS), in which case the firmware will report
and estimate of the overall used bandwidth based on energy
detected. This could be confusing so don't report it that
way, always use 20 MHz for non-HT/legacy frames instead.

Note that currently the value doesn't appear to be used by
mac80211, it never checks the bandwidth field for legacy
encodings.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Benjamin Berg <benjamin.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20251019114304.23e6695039ca.I3da7c542bde6de4362755f200248dbcc12aa246e@changeid
This commit is contained in:
Johannes Berg 2025-10-19 11:45:10 +03:00 committed by Miri Korenblit
parent 50d0cafec6
commit 3e24ba621b
2 changed files with 5 additions and 0 deletions

View File

@ -1309,6 +1309,9 @@ static void iwl_mld_set_rx_rate(struct iwl_mld *mld,
iwl_mld_legacy_hw_idx_to_mac80211_idx(rate_n_flags,
rx_status->band);
/* override BW - it could be DUP and indicate the wrong BW */
rx_status->bw = RATE_INFO_BW_20;
/* valid rate */
if (rate >= 0 && rate <= 0xFF) {
rx_status->rate_idx = rate;

View File

@ -519,6 +519,8 @@ void iwl_mvm_rx_rx_mpdu(struct iwl_mvm *mvm, struct napi_struct *napi,
return;
}
rx_status->rate_idx = rate;
/* override BW - it could be DUP and indicate the wrong BW */
rx_status->bw = RATE_INFO_BW_20;
}
#ifdef CONFIG_IWLWIFI_DEBUGFS