2023-07-10 19:07:56

by Mario Limonciello

[permalink] [raw]
Subject: [PATCH 0/2] Fix s2idle resume on HP 15s-eq2xxx

HP 15s-eq2xxx has problems resuming from s2idle when IOMMU is enabled.
This is the same root cause as some Lenovo laptops had where IOMMU enabled
caused issues with NVME during s2idle resume from a problematic SMI.

To series fixes the issue by re-using the same quirk developed from the
older Lenovo laptops.

Mario Limonciello (2):
platform/x86: Move s2idle quirk from thinkpad-acpi to amd-pmc
platform/x86/amd: pmc: Apply nvme quirk to HP 15s-eq2xxx

drivers/platform/x86/amd/Makefile | 2 +-
drivers/platform/x86/amd/pmc-quirks.c | 172 ++++++++++++++++++++++++++
drivers/platform/x86/amd/pmc.c | 30 +----
drivers/platform/x86/amd/pmc.h | 43 +++++++
drivers/platform/x86/thinkpad_acpi.c | 143 ---------------------
5 files changed, 222 insertions(+), 168 deletions(-)
create mode 100644 drivers/platform/x86/amd/pmc-quirks.c
create mode 100644 drivers/platform/x86/amd/pmc.h

--
2.34.1



2023-07-11 10:03:03

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH 0/2] Fix s2idle resume on HP 15s-eq2xxx

Hi Mario,

On 7/10/23 20:39, Mario Limonciello wrote:
> HP 15s-eq2xxx has problems resuming from s2idle when IOMMU is enabled.
> This is the same root cause as some Lenovo laptops had where IOMMU enabled
> caused issues with NVME during s2idle resume from a problematic SMI.
>
> To series fixes the issue by re-using the same quirk developed from the
> older Lenovo laptops.
>
> Mario Limonciello (2):
> platform/x86: Move s2idle quirk from thinkpad-acpi to amd-pmc
> platform/x86/amd: pmc: Apply nvme quirk to HP 15s-eq2xxx
>
> drivers/platform/x86/amd/Makefile | 2 +-
> drivers/platform/x86/amd/pmc-quirks.c | 172 ++++++++++++++++++++++++++
> drivers/platform/x86/amd/pmc.c | 30 +----
> drivers/platform/x86/amd/pmc.h | 43 +++++++
> drivers/platform/x86/thinkpad_acpi.c | 143 ---------------------
> 5 files changed, 222 insertions(+), 168 deletions(-)
> create mode 100644 drivers/platform/x86/amd/pmc-quirks.c
> create mode 100644 drivers/platform/x86/amd/pmc.h

Thank you for your series, I've applied this series to my fixes
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=fixes

For patch 1/2 the inclusion of linux/pci.h in
drivers/platform/x86/amd/pmc.h is not necessary, where as
some actually needed headers (types and mutex) were missing.

So I've moved the pci.h include back to pmc.c and added
a few missing includes. I have squashed the following diff
into 1/2 while merging for this:

diff --git a/drivers/platform/x86/amd/pmc-quirks.c b/drivers/platform/x86/amd/pmc-quirks.c
index cdf4c7d0a36b..362e7c0097d7 100644
--- a/drivers/platform/x86/amd/pmc-quirks.c
+++ b/drivers/platform/x86/amd/pmc-quirks.c
@@ -9,6 +9,9 @@
*/

#include <linux/dmi.h>
+#include <linux/io.h>
+#include <linux/ioport.h>
+#include <linux/slab.h>

#include "pmc.h"

diff --git a/drivers/platform/x86/amd/pmc.c b/drivers/platform/x86/amd/pmc.c
index 5a9bc062fa8a..a8ca95a5d44c 100644
--- a/drivers/platform/x86/amd/pmc.c
+++ b/drivers/platform/x86/amd/pmc.c
@@ -20,6 +20,7 @@
#include <linux/iopoll.h>
#include <linux/limits.h>
#include <linux/module.h>
+#include <linux/pci.h>
#include <linux/platform_device.h>
#include <linux/rtc.h>
#include <linux/serio.h>
diff --git a/drivers/platform/x86/amd/pmc.h b/drivers/platform/x86/amd/pmc.h
index 8f78985ba340..c27bd6a5642f 100644
--- a/drivers/platform/x86/amd/pmc.h
+++ b/drivers/platform/x86/amd/pmc.h
@@ -11,7 +11,8 @@
#ifndef PMC_H
#define PMC_H

-#include <linux/pci.h>
+#include <linux/types.h>
+#include <linux/mutex.h>

struct amd_pmc_dev {
void __iomem *regbase;

Since this is just changing #include-s this should not cause
any functional changes.

I will include this series in my next fixes pull-req to Linus
for the current kernel development cycle.

Regards,

Hans