[PATCH] wifi: ath11k: fix txpower in ap mode for 6 Ghz

Baochen Qiang baochen.qiang at oss.qualcomm.com
Wed May 13 03:12:53 PDT 2026



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 <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.
> 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 <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