public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Mario Limonciello <mario.limonciello@amd.com>
To: "Rafael J . Wysocki" <rafael@kernel.org>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Bjorn Helgaas <helgaas@kernel.org>
Cc: <linux-pci@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	<linux-acpi@vger.kernel.org>,
	Kuppuswamy Sathyanarayanan 
	<sathyanarayanan.kuppuswamy@linux.intel.com>,
	"Iain Lane" <iain@orangesquash.org.uk>,
	Shyam-sundar S-k <Shyam-sundar.S-k@amd.com>,
	Mario Limonciello <mario.limonciello@amd.com>,
	<stable@vger.kernel.org>
Subject: [PATCH v13 01/12] PCI: Only put Intel PCIe ports >= 2015 into D3
Date: Fri, 18 Aug 2023 00:13:08 -0500	[thread overview]
Message-ID: <20230818051319.551-2-mario.limonciello@amd.com> (raw)
In-Reply-To: <20230818051319.551-1-mario.limonciello@amd.com>

commit 9d26d3a8f1b0 ("PCI: Put PCIe ports into D3 during suspend")
changed pci_bridge_d3_possible() so that any vendor's PCIe ports
from modern machines (>=2015) are allowed to be put into D3.

Iain reports that USB devices can't be used to wake a Lenovo Z13
from suspend. This is because the PCIe root port has been put
into D3 and AMD's platform can't handle USB devices waking in this
case.

This behavior is only reported on Linux. Comparing the behavior
on Windows and Linux, Windows doesn't put the root ports into D3.

To fix the issue without regressing existing Intel systems,
limit the >=2015 check to only apply to Intel PCIe ports.

Cc: stable@vger.kernel.org
Fixes: 9d26d3a8f1b0 ("PCI: Put PCIe ports into D3 during suspend")
Reported-by: Iain Lane <iain@orangesquash.org.uk>
Closes: https://forums.lenovo.com/t5/Ubuntu/Z13-can-t-resume-from-suspend-with-external-USB-keyboard/m-p/5217121
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
---
v12->v13:
 * New patch
---
 drivers/pci/pci.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 60230da957e0c..051e88ee64c63 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -3037,10 +3037,11 @@ bool pci_bridge_d3_possible(struct pci_dev *bridge)
 			return false;
 
 		/*
-		 * It should be safe to put PCIe ports from 2015 or newer
+		 * It is safe to put Intel PCIe ports from 2015 or newer
 		 * to D3.
 		 */
-		if (dmi_get_bios_year() >= 2015)
+		if (bridge->vendor == PCI_VENDOR_ID_INTEL &&
+		    dmi_get_bios_year() >= 2015)
 			return true;
 		break;
 	}
-- 
2.34.1


  reply	other threads:[~2023-08-18  5:16 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-18  5:13 [PATCH v13 00/12] Fix wakeup problems on some AMD platforms Mario Limonciello
2023-08-18  5:13 ` Mario Limonciello [this message]
2023-08-18  8:12   ` [PATCH v13 01/12] PCI: Only put Intel PCIe ports >= 2015 into D3 Rafael J. Wysocki
2023-08-18  8:21     ` David Laight
2023-08-18  9:19       ` Rafael J. Wysocki
2023-08-18 13:54         ` Mario Limonciello
2023-08-18 14:19   ` Kuppuswamy Sathyanarayanan
2023-08-18  5:13 ` [PATCH v13 02/12] ACPI: Add comments to clarify some #ifdef statements Mario Limonciello
2023-08-18  5:13 ` [PATCH v13 03/12] ACPI: Adjust #ifdef for *_lps0_dev use Mario Limonciello
2023-08-18  5:13 ` [PATCH v13 04/12] ACPI: x86: s2idle: Post-increment variables when getting constraints Mario Limonciello
2023-08-18  5:13 ` [PATCH v13 05/12] ACPI: x86: s2idle: Catch multiple ACPI_TYPE_PACKAGE objects Mario Limonciello
2023-08-18  5:13 ` [PATCH v13 06/12] ACPI: x86: s2idle: Fix a logic error parsing AMD constraints table Mario Limonciello
2023-08-18  5:13 ` [PATCH v13 07/12] ACPI: x86: s2idle: Add more debugging for AMD constraints parsing Mario Limonciello
2023-08-18  5:13 ` [PATCH v13 08/12] ACPI: x86: s2idle: Add for_each_lpi_constraint() helper Mario Limonciello
2023-08-18  5:13 ` [PATCH v13 09/12] ACPI: x86: s2idle: Add a function to get constraints for a device Mario Limonciello
2023-08-18  8:31   ` Rafael J. Wysocki
2023-08-18 10:47     ` Andy Shevchenko
2023-08-18 14:04       ` Mario Limonciello
2023-08-18 15:38         ` Rafael J. Wysocki
2023-08-18 15:47           ` Andy Shevchenko
2023-08-18 15:47           ` Rafael J. Wysocki
2023-08-18  5:13 ` [PATCH v13 10/12] PCI: ACPI: Add helper functions for converting ACPI <->PCI states Mario Limonciello
2023-08-18  5:13 ` [PATCH v13 11/12] PCI: ACPI: Use device constraints to opt devices into D3 support Mario Limonciello
2023-08-18 16:06   ` Rafael J. Wysocki
2023-08-18  5:13 ` [PATCH v13 12/12] PCI: ACPI: Limit the Intel specific opt-in to D3 to 2024 Mario Limonciello
2023-08-18 16:09   ` Rafael J. Wysocki
2023-08-18  8:06 ` [PATCH v13 00/12] Fix wakeup problems on some AMD platforms Rafael J. Wysocki
2023-08-18 13:53   ` Mario Limonciello

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=20230818051319.551-2-mario.limonciello@amd.com \
    --to=mario.limonciello@amd.com \
    --cc=Shyam-sundar.S-k@amd.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=helgaas@kernel.org \
    --cc=iain@orangesquash.org.uk \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=rafael@kernel.org \
    --cc=sathyanarayanan.kuppuswamy@linux.intel.com \
    --cc=stable@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox