[PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
Baochen Qiang
baochen.qiang at oss.qualcomm.com
Mon Nov 24 23:25:12 PST 2025
On 11/25/2025 2:57 PM, Takashi Iwai wrote:
> On Tue, 25 Nov 2025 03:28:22 +0100,
> Baochen Qiang wrote:
>>
>>
>>
>> On 11/24/2025 9:47 PM, Takashi Iwai wrote:
>>> The recent kernels showed a regression wrt suspend/resume on Lenovo
>>> Thinkpad T14s Gen 3 AMD model; it fails to reconnect on resume after a
>>> long time sleep. The only workaround was to unload/reload the driver
>>
>> how long? and with a short suspend you don't see the issue?
>
> I can't say exactly, but usually after some hours. I see it happening
> when the machine is resumed in the morning after an overnight sleep.
> Short suspends can resume mostly, as far as I tested.
>
>>> (or reboot).
>>>
>>> It seems that this model also requires the similar quirk with
>>> ATH11K_PM_WOW which has been done for other Thinkpad models.
>>
>> the quirk is to workaround the unexpected wakeup issue, which seems not the same with
>> yours. Hence not sure if this is the right fix.
>
> Yes, I wonder that, too. The whole suspend/resume procedure look
> fairly different with PM WoW quirk, so some of them might matter.
>
>>> Link: https://bugzilla.suse.com/show_bug.cgi?id=1254181
>>> Signed-off-by: Takashi Iwai <tiwai at suse.de>
>>> ---
>>>
>>> I'm not sure whether this model has another DMI entry, so put Mark to
>>> Cc.
>>>
>>> Also, I wonder which Thinkpad models are rather the ones that should
>>> *not* take the quirk. Since mine is Gen 3 and I already see Gen 2
>>> entries, which else remaining...?
>>>
>>>
>>> drivers/net/wireless/ath/ath11k/core.c | 7 +++++++
>>> 1 file changed, 7 insertions(+)
>>>
>>> diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
>>> index 812686173ac8..3aa78a39394b 100644
>>> --- a/drivers/net/wireless/ath/ath11k/core.c
>>> +++ b/drivers/net/wireless/ath/ath11k/core.c
>>> @@ -924,6 +924,13 @@ static const struct dmi_system_id ath11k_pm_quirk_table[] = {
>>> DMI_MATCH(DMI_PRODUCT_NAME, "21J4"),
>>> },
>>> },
>>> + {
>>> + .driver_data = (void *)ATH11K_PM_WOW,
>>> + .matches = { /* T14s G3 AMD */
>>> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
>>> + DMI_MATCH(DMI_PRODUCT_NAME, "21CR"),
>>> + },
>>> + },
>>
>> so with the change, the issue is not seen after a __long__ suspend?
>
> Right, the connection gets resumed properly.
>
>>> {
>>> .driver_data = (void *)ATH11K_PM_WOW,
>>> .matches = { /* T14 G4 AMD #1 */
>>
>> Hmm, I am feeling that we need to dig more to root cause this issue. Can you please help
>> to collect verbose wpa_supplicant/iwd log and kernel log?
>>
>> wpa_supplicant:
>> cd /lib/systemd/system
>> diff --git a/wpa_supplicant.service b/wpa_supplicant.service
>> index d5c7ef8..69693d0 100644
>> --- a/wpa_supplicant.service
>> +++ b/wpa_supplicant.service
>> @@ -5,7 +5,8 @@ Before=network.target
>> [Service]
>> Type=dbus
>> BusName=fi.epitest.hostap.WPASupplicant
>> -ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
>> +ExecStart=/sbin/wpa_supplicant -u -s -t -f/var/log/wpa_supplicant.log -dd -O
>> /run/wpa_supplicant
>>
>>
>> IWD:
>> simply add '-d' option when starting it. You may directly add it to the systemd service
>> entry if you like. See
>>
>> https://archive.kernel.org/oldwiki/iwd.wiki.kernel.org/debugging.html
>
> OK, I'll try to get the log (in tomorrow morning :)
>
> Meanwhile, the PM WoW quirk looks fine for this Thinkpad model, I see
> no other regression with the quirk. As a stop gap, would it be
> acceptable? If yes, I'll resubmit with the entry of another Gen 3
> model Mark suggested.
I would suggest you waiting before we root cause, or at least before logs are collected
and investigated. Then let's see what we do next.
>
>
> thanks,
>
> Takashi
More information about the ath11k
mailing list