drivers/net/wireless/ath/ath11k/core.c | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+)
Commit 0eb002c93c3b4 ("wifi: ath11k: Add missing platform IDs for quirk
table") added some Lenovo platform IDs to the quirk table to address a
wakeup from suspend issue [1]. However, at least P14s Gen 5 AMD, as
reported by Kyle Farnung [2], and P14s Gen 3 AMD are missing in the
table. This commit adds the two corresponding Lenovo version IDs for
each.
[1] https://bugzilla.kernel.org/show_bug.cgi?id=219196
[2] https://bugzilla.kernel.org/show_bug.cgi?id=219196#c23
Tested-on: P14s G3 AMD running 7.0.3.
Fixes: ce8669a27016 ("wifi: ath11k: determine PM policy based on machine model")
Co-authored-by: Kyle Farnung <kfarnung@gmail.com>
Signed-off-by: Santiago Ruano Rincón <santiagorr@riseup.net>
---
Changes in v2:
- Merged the Lenovo P14s G5 AMD #1 and #2 related changes proposed by
Kyle Farnung in
https://lore.kernel.org/all/20260330-p14s-pm-quirk-v2-1-ef18ce07996b@gmail.com/
- Added Kyle Farnung as Co-author of the commit
- Added the second ID of Lenovo P14s G3 AMD, and adapt the comments
accordingly
- v1: https://lore.kernel.org/ath11k/20260423211458.458911-1-santiagorr@riseup.net/
---
drivers/net/wireless/ath/ath11k/core.c | 28 ++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
index 3f6f4db5b7ee..c1ce0a11af44 100644
--- a/drivers/net/wireless/ath/ath11k/core.c
+++ b/drivers/net/wireless/ath/ath11k/core.c
@@ -957,6 +957,20 @@ static const struct dmi_system_id ath11k_pm_quirk_table[] = {
DMI_MATCH(DMI_PRODUCT_NAME, "21K4"),
},
},
+ {
+ .driver_data = (void *)ATH11K_PM_WOW,
+ .matches = { /* P14s G3 AMD #1 */
+ DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "21J5"),
+ },
+ },
+ {
+ .driver_data = (void *)ATH11K_PM_WOW,
+ .matches = { /* P14s G3 AMD #2 */
+ DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "21J6"),
+ },
+ },
{
.driver_data = (void *)ATH11K_PM_WOW,
.matches = { /* P14s G4 AMD #1 */
@@ -971,6 +985,20 @@ static const struct dmi_system_id ath11k_pm_quirk_table[] = {
DMI_MATCH(DMI_PRODUCT_NAME, "21K6"),
},
},
+ {
+ .driver_data = (void *)ATH11K_PM_WOW,
+ .matches = { /* P14s G5 AMD #1 */
+ DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "21ME"),
+ },
+ },
+ {
+ .driver_data = (void *)ATH11K_PM_WOW,
+ .matches = { /* P14s G5 AMD #2 */
+ DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "21MF"),
+ },
+ },
{
.driver_data = (void *)ATH11K_PM_WOW,
.matches = { /* T16 G2 AMD #1 */
--
2.53.0
On 5/6/2026 12:54 PM, Santiago Ruano Rincón wrote:
> Commit 0eb002c93c3b4 ("wifi: ath11k: Add missing platform IDs for quirk
> table") added some Lenovo platform IDs to the quirk table to address a
> wakeup from suspend issue [1]. However, at least P14s Gen 5 AMD, as
> reported by Kyle Farnung [2], and P14s Gen 3 AMD are missing in the
> table. This commit adds the two corresponding Lenovo version IDs for
> each.
>
> [1] https://bugzilla.kernel.org/show_bug.cgi?id=219196
> [2] https://bugzilla.kernel.org/show_bug.cgi?id=219196#c23
>
> Tested-on: P14s G3 AMD running 7.0.3.
>
> Fixes: ce8669a27016 ("wifi: ath11k: determine PM policy based on machine model")
> Co-authored-by: Kyle Farnung <kfarnung@gmail.com>
This is not a standard Linux kernel commit tag.
Co-developed-by: could be used, but I'd need a Signed-off-by: from Kyle
Kyle, if you'd like these added please reply with both a Co-developed-by and
a Signed-off-by tag
I can apply these fixes when I process the patch in my tree.
https://www.kernel.org/doc/html/latest/process/submitting-patches.html#when-to-use-acked-by-cc-and-co-developed-by
> Signed-off-by: Santiago Ruano Rincón <santiagorr@riseup.net>
> ---
> Changes in v2:
> - Merged the Lenovo P14s G5 AMD #1 and #2 related changes proposed by
> Kyle Farnung in
> https://lore.kernel.org/all/20260330-p14s-pm-quirk-v2-1-ef18ce07996b@gmail.com/
> - Added Kyle Farnung as Co-author of the commit
> - Added the second ID of Lenovo P14s G3 AMD, and adapt the comments
> accordingly
> - v1: https://lore.kernel.org/ath11k/20260423211458.458911-1-santiagorr@riseup.net/
> ---
> drivers/net/wireless/ath/ath11k/core.c | 28 ++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
> index 3f6f4db5b7ee..c1ce0a11af44 100644
> --- a/drivers/net/wireless/ath/ath11k/core.c
> +++ b/drivers/net/wireless/ath/ath11k/core.c
> @@ -957,6 +957,20 @@ static const struct dmi_system_id ath11k_pm_quirk_table[] = {
> DMI_MATCH(DMI_PRODUCT_NAME, "21K4"),
> },
> },
> + {
> + .driver_data = (void *)ATH11K_PM_WOW,
> + .matches = { /* P14s G3 AMD #1 */
> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "21J5"),
> + },
> + },
> + {
> + .driver_data = (void *)ATH11K_PM_WOW,
> + .matches = { /* P14s G3 AMD #2 */
> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "21J6"),
> + },
> + },
> {
> .driver_data = (void *)ATH11K_PM_WOW,
> .matches = { /* P14s G4 AMD #1 */
> @@ -971,6 +985,20 @@ static const struct dmi_system_id ath11k_pm_quirk_table[] = {
> DMI_MATCH(DMI_PRODUCT_NAME, "21K6"),
> },
> },
> + {
> + .driver_data = (void *)ATH11K_PM_WOW,
> + .matches = { /* P14s G5 AMD #1 */
> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "21ME"),
> + },
> + },
> + {
> + .driver_data = (void *)ATH11K_PM_WOW,
> + .matches = { /* P14s G5 AMD #2 */
> + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "21MF"),
> + },
> + },
> {
> .driver_data = (void *)ATH11K_PM_WOW,
> .matches = { /* T16 G2 AMD #1 */
On Tue, May 12, 2026 at 5:03 PM Jeff Johnson
<jeff.johnson@oss.qualcomm.com> wrote:
>
> On 5/6/2026 12:54 PM, Santiago Ruano Rincón wrote:
> > Commit 0eb002c93c3b4 ("wifi: ath11k: Add missing platform IDs for quirk
> > table") added some Lenovo platform IDs to the quirk table to address a
> > wakeup from suspend issue [1]. However, at least P14s Gen 5 AMD, as
> > reported by Kyle Farnung [2], and P14s Gen 3 AMD are missing in the
> > table. This commit adds the two corresponding Lenovo version IDs for
> > each.
> >
> > [1] https://bugzilla.kernel.org/show_bug.cgi?id=219196
> > [2] https://bugzilla.kernel.org/show_bug.cgi?id=219196#c23
> >
> > Tested-on: P14s G3 AMD running 7.0.3.
> >
> > Fixes: ce8669a27016 ("wifi: ath11k: determine PM policy based on machine model")
> > Co-authored-by: Kyle Farnung <kfarnung@gmail.com>
>
> This is not a standard Linux kernel commit tag.
> Co-developed-by: could be used, but I'd need a Signed-off-by: from Kyle
>
> Kyle, if you'd like these added please reply with both a Co-developed-by and
> a Signed-off-by tag
I re-tested the bug behavior on the v7.0.4 tag and found that I'm not able
to reproduce it on my device. I put the device to sleep and then unplugged
and replugged power; it never woke up until I intentionally woke it.
Based on discussion in [3], I narrowed my issue with wi-fi disassociation
on wake to a suspect commit [4]. I'm developing a patch that clears the rdp
and wrp buffers during wake to clear out any stale state in the LMAC rings.
I'll submit that once I'm done testing it.
Santiago: Are you seeing the sleep/wake bug from [1] or something similar
to what I was seeing around disconnections on wake?
[3] https://lore.kernel.org/all/CAOPSVF04q6uvVdq8GTRLHBrVMdpt9=o9wVcFMc6f-yhmSBcZqQ@mail.gmail.com/
[4] 32be3ca4cf78b ("wifi: ath11k: HAL SRNG: don't deinitialize and
re-initialize again")
>
> I can apply these fixes when I process the patch in my tree.
>
> https://www.kernel.org/doc/html/latest/process/submitting-patches.html#when-to-use-acked-by-cc-and-co-developed-by
>
> > Signed-off-by: Santiago Ruano Rincón <santiagorr@riseup.net>
> > ---
> > Changes in v2:
> > - Merged the Lenovo P14s G5 AMD #1 and #2 related changes proposed by
> > Kyle Farnung in
> > https://lore.kernel.org/all/20260330-p14s-pm-quirk-v2-1-ef18ce07996b@gmail.com/
> > - Added Kyle Farnung as Co-author of the commit
> > - Added the second ID of Lenovo P14s G3 AMD, and adapt the comments
> > accordingly
> > - v1: https://lore.kernel.org/ath11k/20260423211458.458911-1-santiagorr@riseup.net/
> > ---
> > drivers/net/wireless/ath/ath11k/core.c | 28 ++++++++++++++++++++++++++
> > 1 file changed, 28 insertions(+)
> >
> > diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
> > index 3f6f4db5b7ee..c1ce0a11af44 100644
> > --- a/drivers/net/wireless/ath/ath11k/core.c
> > +++ b/drivers/net/wireless/ath/ath11k/core.c
> > @@ -957,6 +957,20 @@ static const struct dmi_system_id ath11k_pm_quirk_table[] = {
> > DMI_MATCH(DMI_PRODUCT_NAME, "21K4"),
> > },
> > },
> > + {
> > + .driver_data = (void *)ATH11K_PM_WOW,
> > + .matches = { /* P14s G3 AMD #1 */
> > + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> > + DMI_MATCH(DMI_PRODUCT_NAME, "21J5"),
> > + },
> > + },
> > + {
> > + .driver_data = (void *)ATH11K_PM_WOW,
> > + .matches = { /* P14s G3 AMD #2 */
> > + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> > + DMI_MATCH(DMI_PRODUCT_NAME, "21J6"),
> > + },
> > + },
> > {
> > .driver_data = (void *)ATH11K_PM_WOW,
> > .matches = { /* P14s G4 AMD #1 */
> > @@ -971,6 +985,20 @@ static const struct dmi_system_id ath11k_pm_quirk_table[] = {
> > DMI_MATCH(DMI_PRODUCT_NAME, "21K6"),
> > },
> > },
> > + {
> > + .driver_data = (void *)ATH11K_PM_WOW,
> > + .matches = { /* P14s G5 AMD #1 */
> > + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> > + DMI_MATCH(DMI_PRODUCT_NAME, "21ME"),
> > + },
> > + },
> > + {
> > + .driver_data = (void *)ATH11K_PM_WOW,
> > + .matches = { /* P14s G5 AMD #2 */
> > + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> > + DMI_MATCH(DMI_PRODUCT_NAME, "21MF"),
> > + },
> > + },
> > {
> > .driver_data = (void *)ATH11K_PM_WOW,
> > .matches = { /* T16 G2 AMD #1 */
>
El 12/05/26 a las 20:30, Kyle Farnung escribió:
> On Tue, May 12, 2026 at 5:03 PM Jeff Johnson
> <jeff.johnson@oss.qualcomm.com> wrote:
> >
> > On 5/6/2026 12:54 PM, Santiago Ruano Rincón wrote:
> > > Commit 0eb002c93c3b4 ("wifi: ath11k: Add missing platform IDs for quirk
> > > table") added some Lenovo platform IDs to the quirk table to address a
> > > wakeup from suspend issue [1]. However, at least P14s Gen 5 AMD, as
> > > reported by Kyle Farnung [2], and P14s Gen 3 AMD are missing in the
> > > table. This commit adds the two corresponding Lenovo version IDs for
> > > each.
> > >
> > > [1] https://bugzilla.kernel.org/show_bug.cgi?id=219196
> > > [2] https://bugzilla.kernel.org/show_bug.cgi?id=219196#c23
> > >
> > > Tested-on: P14s G3 AMD running 7.0.3.
> > >
> > > Fixes: ce8669a27016 ("wifi: ath11k: determine PM policy based on machine model")
> > > Co-authored-by: Kyle Farnung <kfarnung@gmail.com>
> >
> > This is not a standard Linux kernel commit tag.
> > Co-developed-by: could be used, but I'd need a Signed-off-by: from Kyle
> >
> > Kyle, if you'd like these added please reply with both a Co-developed-by and
> > a Signed-off-by tag
>
> I re-tested the bug behavior on the v7.0.4 tag and found that I'm not able
> to reproduce it on my device. I put the device to sleep and then unplugged
> and replugged power; it never woke up until I intentionally woke it.
>
> Based on discussion in [3], I narrowed my issue with wi-fi disassociation
> on wake to a suspect commit [4]. I'm developing a patch that clears the rdp
> and wrp buffers during wake to clear out any stale state in the LMAC rings.
> I'll submit that once I'm done testing it.
>
> Santiago: Are you seeing the sleep/wake bug from [1] or something similar
> to what I was seeing around disconnections on wake?
I was seeing wifi issues after wake-up, including disassociations, as
described at https://bugs.debian.org/1132343.
>
> [3] https://lore.kernel.org/all/CAOPSVF04q6uvVdq8GTRLHBrVMdpt9=o9wVcFMc6f-yhmSBcZqQ@mail.gmail.com/
> [4] 32be3ca4cf78b ("wifi: ath11k: HAL SRNG: don't deinitialize and
> re-initialize again")
>
> >
> > I can apply these fixes when I process the patch in my tree.
> >
> > https://www.kernel.org/doc/html/latest/process/submitting-patches.html#when-to-use-acked-by-cc-and-co-developed-by
> >
> > > Signed-off-by: Santiago Ruano Rincón <santiagorr@riseup.net>
> > > ---
> > > Changes in v2:
> > > - Merged the Lenovo P14s G5 AMD #1 and #2 related changes proposed by
> > > Kyle Farnung in
> > > https://lore.kernel.org/all/20260330-p14s-pm-quirk-v2-1-ef18ce07996b@gmail.com/
> > > - Added Kyle Farnung as Co-author of the commit
> > > - Added the second ID of Lenovo P14s G3 AMD, and adapt the comments
> > > accordingly
> > > - v1: https://lore.kernel.org/ath11k/20260423211458.458911-1-santiagorr@riseup.net/
> > > ---
> > > drivers/net/wireless/ath/ath11k/core.c | 28 ++++++++++++++++++++++++++
> > > 1 file changed, 28 insertions(+)
> > >
> > > diff --git a/drivers/net/wireless/ath/ath11k/core.c b/drivers/net/wireless/ath/ath11k/core.c
> > > index 3f6f4db5b7ee..c1ce0a11af44 100644
> > > --- a/drivers/net/wireless/ath/ath11k/core.c
> > > +++ b/drivers/net/wireless/ath/ath11k/core.c
> > > @@ -957,6 +957,20 @@ static const struct dmi_system_id ath11k_pm_quirk_table[] = {
> > > DMI_MATCH(DMI_PRODUCT_NAME, "21K4"),
> > > },
> > > },
> > > + {
> > > + .driver_data = (void *)ATH11K_PM_WOW,
> > > + .matches = { /* P14s G3 AMD #1 */
> > > + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> > > + DMI_MATCH(DMI_PRODUCT_NAME, "21J5"),
> > > + },
> > > + },
> > > + {
> > > + .driver_data = (void *)ATH11K_PM_WOW,
> > > + .matches = { /* P14s G3 AMD #2 */
> > > + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> > > + DMI_MATCH(DMI_PRODUCT_NAME, "21J6"),
> > > + },
> > > + },
> > > {
> > > .driver_data = (void *)ATH11K_PM_WOW,
> > > .matches = { /* P14s G4 AMD #1 */
> > > @@ -971,6 +985,20 @@ static const struct dmi_system_id ath11k_pm_quirk_table[] = {
> > > DMI_MATCH(DMI_PRODUCT_NAME, "21K6"),
> > > },
> > > },
> > > + {
> > > + .driver_data = (void *)ATH11K_PM_WOW,
> > > + .matches = { /* P14s G5 AMD #1 */
> > > + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> > > + DMI_MATCH(DMI_PRODUCT_NAME, "21ME"),
> > > + },
> > > + },
> > > + {
> > > + .driver_data = (void *)ATH11K_PM_WOW,
> > > + .matches = { /* P14s G5 AMD #2 */
> > > + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
> > > + DMI_MATCH(DMI_PRODUCT_NAME, "21MF"),
> > > + },
> > > + },
> > > {
> > > .driver_data = (void *)ATH11K_PM_WOW,
> > > .matches = { /* T16 G2 AMD #1 */
> >
© 2016 - 2026 Red Hat, Inc.