All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: "Mark Pearson" <mpearson-lenovo@squebb.ca>
Cc: "Takashi Iwai" <tiwai@suse.de>,
	"Jeff Johnson" <jeff.johnson@oss.qualcomm.com>,
	linux-wireless@vger.kernel.org, ath11k@lists.infradead.org
Subject: Re: [PATCH] wifi: ath11k: Add quirk entry for Thinkpad T14s Gen3 AMD
Date: Tue, 25 Nov 2025 07:58:15 +0100	[thread overview]
Message-ID: <87cy56ppiw.wl-tiwai@suse.de> (raw)
In-Reply-To: <3b97881b-b21a-48ca-91f0-cbfac966ea76@app.fastmail.com>

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



  reply	other threads:[~2025-11-25  6:58 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87cy56ppiw.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=ath11k@lists.infradead.org \
    --cc=jeff.johnson@oss.qualcomm.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=mpearson-lenovo@squebb.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.