* [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
@ 2025-11-24 13:47 Takashi Iwai
2025-11-24 15:13 ` Mark Pearson
2025-11-25 2:28 ` Baochen Qiang
0 siblings, 2 replies; 13+ messages in thread
From: Takashi Iwai @ 2025-11-24 13:47 UTC (permalink / raw)
To: Jeff Johnson; +Cc: Mark Pearson, linux-wireless, ath11k
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
(or reboot).
It seems that this model also requires the similar quirk with
ATH11K_PM_WOW which has been done for other Thinkpad models.
Link: https://bugzilla.suse.com/show_bug.cgi?id=1254181
Signed-off-by: Takashi Iwai <tiwai@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"),
+ },
+ },
{
.driver_data = (void *)ATH11K_PM_WOW,
.matches = { /* T14 G4 AMD #1 */
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
2025-11-24 13:47 [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD Takashi Iwai
@ 2025-11-24 15:13 ` Mark Pearson
2025-11-24 15:32 ` Takashi Iwai
2025-11-25 2:28 ` Baochen Qiang
1 sibling, 1 reply; 13+ messages in thread
From: Mark Pearson @ 2025-11-24 15:13 UTC (permalink / raw)
To: Takashi Iwai, Jeff Johnson; +Cc: linux-wireless, ath11k
Thanks Takashi-san,
On Mon, Nov 24, 2025, at 8:47 AM, 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
> (or reboot).
>
> It seems that this model also requires the similar quirk with
> ATH11K_PM_WOW which has been done for other Thinkpad models.
>
> Link: https://bugzilla.suse.com/show_bug.cgi?id=1254181
> Signed-off-by: Takashi Iwai <tiwai@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...?
>
It should only apply to models with the ath11k modem - but it looks like Gen 2 up to Gen 6....which is quite a lot. I don't know if all of those are impacted.
I think we'll have to do more testing and get feedback from the FW team, which will take a bit I'm afraid. I'll look into it.
>
> 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"),
> + },
> + },
> {
> .driver_data = (void *)ATH11K_PM_WOW,
> .matches = { /* T14 G4 AMD #1 */
> --
> 2.52.0
I think you need to add the "21CQ" Product Name for this platform too (every model has two IDs depending on where in the world it is deployed)
Unfortunately my T14s G3 AMD seems to be dead :( I can't test and confirm directly.
Thanks
Mark
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
2025-11-24 15:13 ` Mark Pearson
@ 2025-11-24 15:32 ` Takashi Iwai
2025-11-24 15:52 ` Mark Pearson
0 siblings, 1 reply; 13+ messages in thread
From: Takashi Iwai @ 2025-11-24 15:32 UTC (permalink / raw)
To: Mark Pearson; +Cc: Takashi Iwai, Jeff Johnson, linux-wireless, ath11k
On Mon, 24 Nov 2025 16:13:05 +0100,
Mark Pearson wrote:
>
> Thanks Takashi-san,
>
> On Mon, Nov 24, 2025, at 8:47 AM, 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
> > (or reboot).
> >
> > It seems that this model also requires the similar quirk with
> > ATH11K_PM_WOW which has been done for other Thinkpad models.
> >
> > Link: https://bugzilla.suse.com/show_bug.cgi?id=1254181
> > Signed-off-by: Takashi Iwai <tiwai@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...?
> >
>
> It should only apply to models with the ath11k modem - but it looks like Gen 2 up to Gen 6....which is quite a lot. I don't know if all of those are impacted.
> I think we'll have to do more testing and get feedback from the FW team, which will take a bit I'm afraid. I'll look into it.
I see, thanks for confirmation!
> >
> > 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"),
> > + },
> > + },
> > {
> > .driver_data = (void *)ATH11K_PM_WOW,
> > .matches = { /* T14 G4 AMD #1 */
> > --
> > 2.52.0
>
> I think you need to add the "21CQ" Product Name for this platform too (every model has two IDs depending on where in the world it is deployed)
>
> Unfortunately my T14s G3 AMD seems to be dead :( I can't test and confirm directly.
OK, I can resubmit with 21CQ entry later.
Also, maybe it'd be worth for adding a module option to specify /
override the quirk, so that one can test without recompiling the
kernel?
thanks,
Takashi
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
2025-11-24 15:32 ` Takashi Iwai
@ 2025-11-24 15:52 ` Mark Pearson
2025-11-25 6:58 ` Takashi Iwai
0 siblings, 1 reply; 13+ messages in thread
From: Mark Pearson @ 2025-11-24 15:52 UTC (permalink / raw)
To: Takashi Iwai; +Cc: Jeff Johnson, linux-wireless, ath11k
On Mon, Nov 24, 2025, at 10:32 AM, Takashi Iwai wrote:
> On Mon, 24 Nov 2025 16:13:05 +0100,
> Mark Pearson wrote:
>>
>> Thanks Takashi-san,
>>
>> On Mon, Nov 24, 2025, at 8:47 AM, 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
>> > (or reboot).
>> >
>> > It seems that this model also requires the similar quirk with
>> > ATH11K_PM_WOW which has been done for other Thinkpad models.
>> >
>> > Link: https://bugzilla.suse.com/show_bug.cgi?id=1254181
>> > Signed-off-by: Takashi Iwai <tiwai@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...?
>> >
>>
>> It should only apply to models with the ath11k modem - but it looks like Gen 2 up to Gen 6....which is quite a lot. I don't know if all of those are impacted.
>> I think we'll have to do more testing and get feedback from the FW team, which will take a bit I'm afraid. I'll look into it.
>
> I see, thanks for confirmation!
>
>> >
>> > 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"),
>> > + },
>> > + },
>> > {
>> > .driver_data = (void *)ATH11K_PM_WOW,
>> > .matches = { /* T14 G4 AMD #1 */
>> > --
>> > 2.52.0
>>
>> I think you need to add the "21CQ" Product Name for this platform too (every model has two IDs depending on where in the world it is deployed)
>>
>> Unfortunately my T14s G3 AMD seems to be dead :( I can't test and confirm directly.
>
> OK, I can resubmit with 21CQ entry later.
>
> Also, maybe it'd be worth for adding a module option to specify /
> override the quirk, so that one can test without recompiling the
> kernel?
>
Yeah - that could be useful so users can confirm if they need the quirk too (especially if platforms outside of the Linux program are impacted). It gets my vote :)
Mark
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
2025-11-24 13:47 [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD Takashi Iwai
2025-11-24 15:13 ` Mark Pearson
@ 2025-11-25 2:28 ` Baochen Qiang
2025-11-25 6:57 ` Takashi Iwai
1 sibling, 1 reply; 13+ messages in thread
From: Baochen Qiang @ 2025-11-25 2:28 UTC (permalink / raw)
To: Takashi Iwai, Jeff Johnson; +Cc: Mark Pearson, linux-wireless, ath11k
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?
> (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.
>
> Link: https://bugzilla.suse.com/show_bug.cgi?id=1254181
> Signed-off-by: Takashi Iwai <tiwai@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?
> {
> .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
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
2025-11-25 2:28 ` Baochen Qiang
@ 2025-11-25 6:57 ` Takashi Iwai
2025-11-25 7:25 ` Baochen Qiang
0 siblings, 1 reply; 13+ messages in thread
From: Takashi Iwai @ 2025-11-25 6:57 UTC (permalink / raw)
To: Baochen Qiang
Cc: Takashi Iwai, Jeff Johnson, Mark Pearson, linux-wireless, ath11k
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@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.
thanks,
Takashi
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
2025-11-24 15:52 ` Mark Pearson
@ 2025-11-25 6:58 ` Takashi Iwai
0 siblings, 0 replies; 13+ messages in thread
From: Takashi Iwai @ 2025-11-25 6:58 UTC (permalink / raw)
To: Mark Pearson; +Cc: Takashi Iwai, Jeff Johnson, linux-wireless, ath11k
On Mon, 24 Nov 2025 16:52:07 +0100,
Mark Pearson wrote:
>
> On Mon, Nov 24, 2025, at 10:32 AM, Takashi Iwai wrote:
> > On Mon, 24 Nov 2025 16:13:05 +0100,
> > Mark Pearson wrote:
> >>
> >> Thanks Takashi-san,
> >>
> >> On Mon, Nov 24, 2025, at 8:47 AM, 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
> >> > (or reboot).
> >> >
> >> > It seems that this model also requires the similar quirk with
> >> > ATH11K_PM_WOW which has been done for other Thinkpad models.
> >> >
> >> > Link: https://bugzilla.suse.com/show_bug.cgi?id=1254181
> >> > Signed-off-by: Takashi Iwai <tiwai@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...?
> >> >
> >>
> >> It should only apply to models with the ath11k modem - but it looks like Gen 2 up to Gen 6....which is quite a lot. I don't know if all of those are impacted.
> >> I think we'll have to do more testing and get feedback from the FW team, which will take a bit I'm afraid. I'll look into it.
> >
> > I see, thanks for confirmation!
> >
> >> >
> >> > 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"),
> >> > + },
> >> > + },
> >> > {
> >> > .driver_data = (void *)ATH11K_PM_WOW,
> >> > .matches = { /* T14 G4 AMD #1 */
> >> > --
> >> > 2.52.0
> >>
> >> I think you need to add the "21CQ" Product Name for this platform too (every model has two IDs depending on where in the world it is deployed)
> >>
> >> Unfortunately my T14s G3 AMD seems to be dead :( I can't test and confirm directly.
> >
> > OK, I can resubmit with 21CQ entry later.
> >
> > Also, maybe it'd be worth for adding a module option to specify /
> > override the quirk, so that one can test without recompiling the
> > kernel?
> >
> Yeah - that could be useful so users can confirm if they need the quirk too (especially if platforms outside of the Linux program are impacted). It gets my vote :)
>
> Mark
OK, it'd be like below.
Takashi
-- 8< --
From: Takashi Iwai <tiwai@suse.de>
Subject: [PATCH] wifi: ath11k: Add pm_wow module option
This provides a new module option "pm_wow" for forcibly enabling or
disabling the PM WoW policy. It helps for debugging the machines that
have a PM problem, so that user can test without recompiling the
kernel -- there are lots of Thinkpad models and some of them may still
need WoW behavior.
As default, the option takes -1, which means to follow the DMI quirk
list and falls back to the default policy. If the option is given
(either 0 or 1), it precedes and the PM policy is set to that value.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
drivers/net/wireless/ath/ath11k/core.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
index 4daaeb5e0ab8..f497ea3a3a2e 100644
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -39,6 +39,10 @@ bool ath11k_ftm_mode;
module_param_named(ftm_mode, ath11k_ftm_mode, bool, 0444);
MODULE_PARM_DESC(ftm_mode, "Boots up in factory test mode");
+static int ath11k_pm_wow = -1;
+module_param_named(pm_wow, ath11k_pm_wow, bint, 0444);
+MODULE_PARM_DESC(pm_wow, "Force to enable/disable WoW PM policy");
+
static const struct ath11k_hw_params ath11k_hw_params[] = {
{
.hw_rev = ATH11K_HW_IPQ8074,
@@ -2618,11 +2622,16 @@ int ath11k_core_init(struct ath11k_base *ab)
const struct dmi_system_id *dmi_id;
int ret;
- dmi_id = dmi_first_match(ath11k_pm_quirk_table);
- if (dmi_id)
- ab->pm_policy = (kernel_ulong_t)dmi_id->driver_data;
- else
- ab->pm_policy = ATH11K_PM_DEFAULT;
+ if (ath11k_pm_wow >= 0) {
+ ath11k_info(ab, "force to set PM WoW: %d\n", ath11k_pm_wow);
+ ab->pm_policy = ath11k_pm_wow;
+ } else {
+ dmi_id = dmi_first_match(ath11k_pm_quirk_table);
+ if (dmi_id)
+ ab->pm_policy = (kernel_ulong_t)dmi_id->driver_data;
+ else
+ ab->pm_policy = ATH11K_PM_DEFAULT;
+ }
ath11k_dbg(ab, ATH11K_DBG_BOOT, "pm policy %u\n", ab->pm_policy);
--
2.52.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
2025-11-25 6:57 ` Takashi Iwai
@ 2025-11-25 7:25 ` Baochen Qiang
2025-11-25 7:40 ` Takashi Iwai
0 siblings, 1 reply; 13+ messages in thread
From: Baochen Qiang @ 2025-11-25 7:25 UTC (permalink / raw)
To: Takashi Iwai; +Cc: Jeff Johnson, Mark Pearson, linux-wireless, ath11k
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@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
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
2025-11-25 7:25 ` Baochen Qiang
@ 2025-11-25 7:40 ` Takashi Iwai
2026-01-11 10:47 ` Ilya K
0 siblings, 1 reply; 13+ messages in thread
From: Takashi Iwai @ 2025-11-25 7:40 UTC (permalink / raw)
To: Baochen Qiang
Cc: Takashi Iwai, Jeff Johnson, Mark Pearson, linux-wireless, ath11k
On Tue, 25 Nov 2025 08:25:12 +0100,
Baochen Qiang wrote:
>
>
>
> 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@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.
OK, fair enough.
Takashi
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
2025-11-25 7:40 ` Takashi Iwai
@ 2026-01-11 10:47 ` Ilya K
2026-01-12 2:35 ` Baochen Qiang
0 siblings, 1 reply; 13+ messages in thread
From: Ilya K @ 2026-01-11 10:47 UTC (permalink / raw)
To: tiwai; +Cc: ath11k, baochen.qiang, jeff.johnson, linux-wireless,
mpearson-lenovo
Hey folks,
Sorry for bumping an old-ish thread, but I've had the same issue on a T13 Gen3 machine as well (model 21CG), and there seems to be no better solution in sight.
Also, here's another instance of what I'm pretty sure is the same issue: https://lore.kernel.org/ath11k/6268b094-5a40-40d8-8461-9c9b0f9e1ae3@oss.qualcomm.com/T/#t
Can this get landed at least as a temporary workaround? Also, should I submit the 21CG quirk as a separate patch?
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
2026-01-11 10:47 ` Ilya K
@ 2026-01-12 2:35 ` Baochen Qiang
2026-01-12 2:37 ` Baochen Qiang
0 siblings, 1 reply; 13+ messages in thread
From: Baochen Qiang @ 2026-01-12 2:35 UTC (permalink / raw)
To: Ilya K, tiwai; +Cc: ath11k, jeff.johnson, linux-wireless, mpearson-lenovo
On 1/11/2026 6:47 PM, Ilya K wrote:
> Hey folks,
>
> Sorry for bumping an old-ish thread, but I've had the same issue on a T13 Gen3 machine as well (model 21CG), and there seems to be no better solution in sight.
>
> Also, here's another instance of what I'm pretty sure is the same issue: https://lore.kernel.org/ath11k/6268b094-5a40-40d8-8461-9c9b0f9e1ae3@oss.qualcomm.com/T/#t
>
> Can this get landed at least as a temporary workaround? Also, should I submit the 21CG quirk as a separate patch?
I had an off list discussion with Takashi, and based on the logs collected I don't think
this is not a suspend/resume issue, or even this is not a STA side issue.
Before we conclude whether your issue is the same or not, can you please describe your
issue in detail? specifically is it an unexpected wakeup or is it reconnection failure
after a normal wakeup?
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
2026-01-12 2:35 ` Baochen Qiang
@ 2026-01-12 2:37 ` Baochen Qiang
2026-03-05 12:46 ` Ilya K
0 siblings, 1 reply; 13+ messages in thread
From: Baochen Qiang @ 2026-01-12 2:37 UTC (permalink / raw)
To: Ilya K, tiwai; +Cc: ath11k, jeff.johnson, linux-wireless, mpearson-lenovo
On 1/12/2026 10:35 AM, Baochen Qiang wrote:
>
>
> On 1/11/2026 6:47 PM, Ilya K wrote:
>> Hey folks,
>>
>> Sorry for bumping an old-ish thread, but I've had the same issue on a T13 Gen3 machine as well (model 21CG), and there seems to be no better solution in sight.
>>
>> Also, here's another instance of what I'm pretty sure is the same issue: https://lore.kernel.org/ath11k/6268b094-5a40-40d8-8461-9c9b0f9e1ae3@oss.qualcomm.com/T/#t
>>
>> Can this get landed at least as a temporary workaround? Also, should I submit the 21CG quirk as a separate patch?
>
> I had an off list discussion with Takashi, and based on the logs collected I don't think
> this is not a suspend/resume issue, or even this is not a STA side issue.
my bad:
s/this is not/this is/
>
> Before we conclude whether your issue is the same or not, can you please describe your
> issue in detail? specifically is it an unexpected wakeup or is it reconnection failure
> after a normal wakeup?
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
2026-01-12 2:37 ` Baochen Qiang
@ 2026-03-05 12:46 ` Ilya K
0 siblings, 0 replies; 13+ messages in thread
From: Ilya K @ 2026-03-05 12:46 UTC (permalink / raw)
To: Baochen Qiang, tiwai
Cc: ath11k, jeff.johnson, linux-wireless, mpearson-lenovo
On 2026-01-12 05:37, Baochen Qiang wrote:
>
>
> On 1/12/2026 10:35 AM, Baochen Qiang wrote:
>>
>>
>> On 1/11/2026 6:47 PM, Ilya K wrote:
>>> Hey folks,
>>>
>>> Sorry for bumping an old-ish thread, but I've had the same issue on a T13 Gen3 machine as well (model 21CG), and there seems to be no better solution in sight.
>>>
>>> Also, here's another instance of what I'm pretty sure is the same issue: https://lore.kernel.org/ath11k/6268b094-5a40-40d8-8461-9c9b0f9e1ae3@oss.qualcomm.com/T/#t
>>>
>>> Can this get landed at least as a temporary workaround? Also, should I submit the 21CG quirk as a separate patch?
>>
>> I had an off list discussion with Takashi, and based on the logs collected I don't think
>> this is not a suspend/resume issue, or even this is not a STA side issue.
>
> my bad:
>
> s/this is not/this is/
>
>>
>> Before we conclude whether your issue is the same or not, can you please describe your
>> issue in detail? specifically is it an unexpected wakeup or is it reconnection failure
>> after a normal wakeup?
>>
>
I've had a bit of an off list conversation with Baochen about this a while ago, but I just saw https://lore.kernel.org/ath11k/20260214212452.782265-38-sashal@kernel.org/T/#u landed, and I still haven't had time to get more data on the affected machine, but it has been rock solid with the quirk added locally, across updated and different APs. Maybe it makes sense to add the quirk at least for the time being? I'll try to get some debug time in the coming weeks, but free time is hard to come by lately :(
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-03-05 12:46 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-24 13:47 [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD Takashi Iwai
2025-11-24 15:13 ` Mark Pearson
2025-11-24 15:32 ` Takashi Iwai
2025-11-24 15:52 ` Mark Pearson
2025-11-25 6:58 ` Takashi Iwai
2025-11-25 2:28 ` Baochen Qiang
2025-11-25 6:57 ` Takashi Iwai
2025-11-25 7:25 ` Baochen Qiang
2025-11-25 7:40 ` Takashi Iwai
2026-01-11 10:47 ` Ilya K
2026-01-12 2:35 ` Baochen Qiang
2026-01-12 2:37 ` Baochen Qiang
2026-03-05 12:46 ` Ilya K
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox