mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 02:31:27 +02:00
wifi: iwlwifi: mld: implement UHR DPS
For UHR, implement dynamic power save (DPS). Since the firmware handles most of it, simply advertise DPS capability and set the corresponding link flag when the AP has advertised that it is a DPS assisting AP. DPS assisting is currently not supported. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Link: https://patch.msgid.link/20260513084215.69c5657f2b0c.I0e0dfcd2e2641a5656a14f01ce696443ae10bc4a@changeid Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
This commit is contained in:
parent
7f7a450ed8
commit
f5d199b14c
|
|
@ -550,6 +550,7 @@ enum iwl_link_ctx_protection_flags {
|
|||
* @LINK_FLG_NDP_FEEDBACK_ENABLED: mark support for NDP feedback and change
|
||||
* of threshold
|
||||
* @LINK_FLG_NPCA: NPCA enabled
|
||||
* @LINK_FLG_DPS: AP is a DPS assisting AP
|
||||
*/
|
||||
enum iwl_link_ctx_flags {
|
||||
LINK_FLG_BSS_COLOR_DIS = BIT(0),
|
||||
|
|
@ -557,6 +558,7 @@ enum iwl_link_ctx_flags {
|
|||
LINK_FLG_RU_2MHZ_BLOCK = BIT(2),
|
||||
LINK_FLG_NDP_FEEDBACK_ENABLED = BIT(3),
|
||||
LINK_FLG_NPCA = BIT(4),
|
||||
LINK_FLG_DPS = BIT(6),
|
||||
}; /* LINK_CONTEXT_FLAG_E_VER_1 */
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -696,7 +696,8 @@ static const struct ieee80211_sband_iftype_data iwl_iftype_cap[] = {
|
|||
.phy.cap = IEEE80211_UHR_PHY_CAP_ELR_RX |
|
||||
IEEE80211_UHR_PHY_CAP_ELR_TX,
|
||||
.mac.mac_cap = {
|
||||
[0] = IEEE80211_UHR_MAC_CAP0_NPCA_SUPP,
|
||||
[0] = IEEE80211_UHR_MAC_CAP0_NPCA_SUPP |
|
||||
IEEE80211_UHR_MAC_CAP0_DPS_SUPP,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -335,10 +335,18 @@ iwl_mld_change_link_in_fw(struct iwl_mld *mld, struct ieee80211_bss_conf *link,
|
|||
link_sta_dereference_check(mld_vif->ap_sta,
|
||||
link->link_id);
|
||||
|
||||
if (!WARN_ON(!link_sta) && link_sta->he_cap.has_he &&
|
||||
if (WARN_ON(!link_sta))
|
||||
return -EINVAL;
|
||||
|
||||
if (link_sta->he_cap.has_he &&
|
||||
link_sta->he_cap.he_cap_elem.mac_cap_info[5] &
|
||||
IEEE80211_HE_MAC_CAP5_OM_CTRL_UL_MU_DATA_DIS_RX)
|
||||
cmd.ul_mu_data_disable = 1;
|
||||
|
||||
if (link_sta->uhr_cap.has_uhr &&
|
||||
link_sta->uhr_cap.mac.mac_cap[0] &
|
||||
IEEE80211_UHR_MAC_CAP0_DPS_ASSIST_SUPP)
|
||||
flags |= LINK_FLG_DPS;
|
||||
}
|
||||
|
||||
cmd.htc_trig_based_pkt_ext = link->htc_trig_based_pkt_ext;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user