[PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD

Takashi Iwai tiwai at suse.de
Mon Nov 24 22:57:06 PST 2025


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.


thanks,

Takashi



More information about the ath11k mailing list