[PATCH] wifi: ath11k: fix txpower in ap mode for 6 Ghz
Sebastian Gottschall
s.gottschall at dd-wrt.com
Tue May 12 22:09:55 PDT 2026
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 <s.gottschall at dd-wrt.com>
>> ---
>> 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.
i renamed the function from ath11k_mac_supports_station_tpc to
ath11k_mac_supports_tpc since the function now checks for ap and station
mode or what are you talking about?
>
>> 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?
hard to tell. i just can tell you that this issue on 6 ghz channels
happens if tpc power isnt used. but i tested this solution
you can simply check it. got to a 6 ghz channel.
to
iw dev wlanX scan
iw dev wlanX info
and you will see that txpower is 0 and the ap is also now very weak.
btw. this issue is fixed and covered in the qca qsdk for ath11k. i dont
know what it was limited to sta only which porting this patch to
upstream ath11k.
Sebastian
>
> commit a44958c83e52238996a48e7d604167c9b9d0a529
> Author: Hariharan Basuthkar <quic_hbasuthk at quicinc.com>
> 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.
>
>
More information about the ath11k
mailing list