Re: [PATCH] wifi: ath11k: fix txpower in ap mode for 6 Ghz
Baochen Qiang <[email protected]>
| Newsgroups | org.infradead.lists.ath11k |
|---|---|
| Message-ID | <[email protected]> |
On 5/13/2026 1:20 PM, Sebastian Gottschall wrote: > > Am 13.05.2026 um 03:56 schrieb Baochen Qiang: >> >> On 5/13/2026 4:48 AM, Sebastian Gottschall wrote: >>> there is an issue which has been discovered a while ago while testing >>> which killed txpower to 0dbm once scanning is triggered in AP mode >>> on QCN9074 based chipsets if 6 Ghz is in use. >>> ath11k_wmi_send_vdev_set_tpc_power must be set in AP mode in the same >>> way is it is for STA as it is implemented in ath12k and in the >>> qsdk version for ath11k. >>> this patch must be considered to be backported (i discovered that issue >>> already 2 years ago) >>> >>> Signed-off-by: Sebastian Gottschall <[email protected]> >>> --- >>> drivers/net/wireless/ath/ath11k/mac.c | 9 +++++---- >>> 1 file changed, 5 insertions(+), 4 deletions(-) >>> >>> diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c >>> index a48b6bf1f29a..dc192152b2e8 100644 >>> --- a/drivers/net/wireless/ath/ath11k/mac.c >>> +++ b/drivers/net/wireless/ath/ath11k/mac.c >>> @@ -3497,13 +3497,14 @@ static int ath11k_mac_config_obss_pd(struct ath11k *ar, >>> return 0; >>> } >>> -static bool ath11k_mac_supports_station_tpc(struct ath11k *ar, >>> +static bool ath11k_mac_supports_tpc(struct ath11k *ar, >>> struct ath11k_vif *arvif, >>> const struct cfg80211_chan_def *chandef) >>> { >>> return ath11k_wmi_supports_6ghz_cc_ext(ar) && >>> test_bit(WMI_TLV_SERVICE_EXT_TPC_REG_SUPPORT, ar->ab->wmi_ab.svc_map) && >>> - arvif->vdev_type == WMI_VDEV_TYPE_STA && >>> + (arvif->vdev_type == WMI_VDEV_TYPE_STA || >>> + arvif->vdev_type == WMI_VDEV_TYPE_AP) && >>> arvif->vdev_subtype == WMI_VDEV_SUBTYPE_NONE && >>> chandef->chan && >>> chandef->chan->band == NL80211_BAND_6GHZ; >>> @@ -7647,8 +7648,8 @@ ath11k_mac_vdev_start_restart(struct ath11k_vif *arvif, >>> /* TODO: For now we only set TPC power here. However when >>> * channel changes, say CSA, it should be updated again. >>> */ >>> - if (ath11k_mac_supports_station_tpc(ar, arvif, chandef)) { >>> - ath11k_mac_fill_reg_tpc_info(ar, arvif->vif, &arvif->chanctx); >>> + if (ath11k_mac_supports_tpc(ar, arvif, chandef)) { >>> + ath11k_mac_fill_reg_tpc_info(ar, arvif->vif, ctx); >> is this intentional change? I doubt it even doesn't compile. > in addition. i compile tested it. and if you talk about the change from arvid->chanctx to > ctx. this valid > arvif->chanctx is not always set. the only trustworthy source is ctx and represents the > current channel context. > there was never a reason to use arvif->chanctx my bad, I was referring to a wrong codebase. Yes, you are correct. Even the upstream ath12k uses ctx instead of arvif->chanctx. > > Sebastian > >> >>> ath11k_wmi_send_vdev_set_tpc_power(ar, arvif->vdev_id, >>> &arvif->reg_tpc_info); >>> } >> the ath12k patch has additional changes to hardcode power_type to LPI for an AP vdev, >> should it be done for ath11k as well? >> >> commit a44958c83e52238996a48e7d604167c9b9d0a529 >> Author: Hariharan Basuthkar <[email protected]> >> Date: Fri Jun 6 16:53:16 2025 +0530 >> >> wifi: ath12k: Send WMI_VDEV_SET_TPC_POWER_CMD for AP vdev >> >> [...] >> >> For a AP vdev, hardcode ap_power_type as IEEE80211_REG_LPI_AP, which is >> filled in the WMI_VDEV_SET_TPC_POWER_CMDID sent to the target. >> Currently, LPI is the only supported AP power mode. Since there is >> no method currently to set the AP power mode from user-space, the >> power mode is hard-coded to LPI. >> >>