mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-20 10:51:27 +00:00
84 lines
3.1 KiB
Diff
84 lines
3.1 KiB
Diff
From 517a871bbbe7d9eb4a732a3439b4835f70514be9 Mon Sep 17 00:00:00 2001
|
|
From: Sivashankari Madhavan <quic_sivamadh@quicinc.com>
|
|
Date: Wed, 7 Sep 2022 15:02:06 +0530
|
|
Subject: [PATCH] ath11k: Add the green AP enabling set command support
|
|
|
|
Enable/Disable the Green AP based on SUPPORTS_AP_PS bit set under
|
|
the supports_ap_ps hw param. In ath11k this hw param is not supported.
|
|
|
|
Now added supports_ap_ps hw_param under ipq9574 for support iw set command
|
|
for enable Green AP in ath11k.
|
|
|
|
root@OpenWrt:/# iw wlan0 set ap_ps 0
|
|
EXTMSG [0x00000000 00000000] SSID[4528] wlan_dev.c Line[0496]:
|
|
GreenAP Curr Chainmask: 15/15, Phy_mode: 21, bw[20/40/80/160]: 0
|
|
EXTMSG [0x00000000 00000000] SSID[4528] wlan_dev.c Line[0498]:
|
|
GreenAP saved tx/rx chainmask: 15/15, phymode: 21, freq1: 2462, 0
|
|
|
|
root@OpenWrt:/# iw wlan0 set ap_ps 1
|
|
EXTMSG [0x00000000 00000000] SSID[4528] wlan_dev.c Line[0496]:
|
|
GreenAP Curr Chainmask: 1/1, Phy_mode: 1, bw[20/40/80/160]: 0
|
|
EXTMSG [0x00000000 00000000] SSID[4528] wlan_dev.c Line[0498]:
|
|
GreenAP saved tx/rx chainmask: 15/15, phymode: 21, freq1: 2462, 9
|
|
|
|
Signed-off-by: Sivashankari Madhavan <quic_sivamadh@quicinc.com>
|
|
---
|
|
drivers/net/wireless/ath/ath11k/core.c | 1 +
|
|
drivers/net/wireless/ath/ath11k/hw.h | 1 +
|
|
drivers/net/wireless/ath/ath11k/mac.c | 8 ++++++++
|
|
3 files changed, 10 insertions(+)
|
|
|
|
diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
|
|
index 22225b2..d093004 100644
|
|
--- a/drivers/net/wireless/ath/ath11k/core.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/core.c
|
|
@@ -768,6 +768,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
|
|
.wakeup_mhi = false,
|
|
.reo_status_poll = false,
|
|
.num_vdevs_peers = ath11k_vdevs_peers,
|
|
+ .supports_ap_ps = true,
|
|
},
|
|
};
|
|
|
|
diff --git a/drivers/net/wireless/ath/ath11k/hw.h b/drivers/net/wireless/ath/ath11k/hw.h
|
|
index 8bd2ac4..af1b70b 100644
|
|
--- a/drivers/net/wireless/ath/ath11k/hw.h
|
|
+++ b/drivers/net/wireless/ath/ath11k/hw.h
|
|
@@ -218,6 +218,7 @@ struct ath11k_hw_params {
|
|
u32 hal_desc_sz;
|
|
bool supports_regdb;
|
|
bool fix_l1ss;
|
|
+ bool supports_ap_ps;
|
|
bool credit_flow;
|
|
u8 max_tx_ring;
|
|
const struct ath11k_hw_hal_params *hal_params;
|
|
diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
|
|
index 38b82be..3f31373 100644
|
|
--- a/drivers/net/wireless/ath/ath11k/mac.c
|
|
+++ b/drivers/net/wireless/ath/ath11k/mac.c
|
|
@@ -4050,6 +4050,11 @@ static void ath11k_mac_op_bss_info_changed(struct ieee80211_hw *hw,
|
|
if (changed & BSS_CHANGED_FILS_DISCOVERY ||
|
|
changed & BSS_CHANGED_UNSOL_BCAST_PROBE_RESP)
|
|
ath11k_mac_fils_discovery(arvif, info);
|
|
+
|
|
+ if ((changed & BSS_CHANGED_PS) && vif->type == NL80211_IFTYPE_AP) {
|
|
+ ar->ap_ps_enabled = info->ap_ps_enable;
|
|
+ ath11k_mac_ap_ps_recalc(ar);
|
|
+ }
|
|
|
|
mutex_unlock(&ar->conf_mutex);
|
|
}
|
|
@@ -12151,6 +12156,9 @@ static int __ath11k_mac_register(struct ath11k *ar)
|
|
|
|
if (ab->hw_params.single_pdev_only && ar->supports_6ghz)
|
|
ieee80211_hw_set(ar->hw, SINGLE_SCAN_ON_ALL_BANDS);
|
|
+
|
|
+ if (ab->hw_params.supports_ap_ps)
|
|
+ ieee80211_hw_set(ar->hw, SUPPORTS_AP_PS);
|
|
|
|
ieee80211_hw_set(ar->hw, SIGNAL_DBM);
|
|
ieee80211_hw_set(ar->hw, SUPPORTS_PS);
|
|
--
|
|
2.17.1
|
|
|