From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9FD8FCA0EED for ; Mon, 18 Aug 2025 02:01:25 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A4F8910E32C; Mon, 18 Aug 2025 02:01:24 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="k2nOETKo"; dkim-atps=neutral Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4F79D10E32A; Mon, 18 Aug 2025 02:01:23 +0000 (UTC) Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 0AF564588A; Mon, 18 Aug 2025 02:01:23 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 02BB8C116D0; Mon, 18 Aug 2025 02:01:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1755482482; bh=gmu/PdQ4UxFejc1aL5S++SztnEvLGmrvTcqy4XQi3rg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=k2nOETKoqZ9uE91kGG8cbeIu5ptgj5y9DfDbi2//AI05EnLaABTEpKqqvbCZNSP2I +VQzrVH2xT0S+rPb9rl2n0Qc3muJk4SCJrep/mH/6FEcBHpFrjg7nTNfZF5mZSET3D V/wD4fiUtsjQKWwamz1EeU9xSfHe4mL2E4g6LoirlvgsL4rmLOByrBzsoLha4I/IsC XQGybKwDOqVxB6+rsNoPalU+9ClpRkZggyr3goyZp/NzsbaM1RxC/n+JHJ7kLHITIy Dw3evZhU7vrPhqSsmf4OCRvgGKudsLcyEJ+No6bSnZexzP8aur+kUoHY4Jt0QDm/PY tXNzGWgp/j73Q== From: "Mario Limonciello (AMD)" To: "Rafael J . Wysocki" , Bjorn Helgaas Cc: Pavel Machek , Len Brown , Greg Kroah-Hartman , Danilo Krummrich , =?UTF-8?q?Christian=20K=C3=B6nig?= , "James E . J . Bottomley" , "Martin K . Petersen" , Steven Rostedt , linux-pm@vger.kernel.org (open list:HIBERNATION (aka Software Suspend, aka swsusp)), amd-gfx@lists.freedesktop.org (open list:RADEON and AMDGPU DRM DRIVERS), dri-devel@lists.freedesktop.org (open list:DRM DRIVERS), linux-pci@vger.kernel.org (open list:PCI SUBSYSTEM), linux-scsi@vger.kernel.org (open list:SCSI SUBSYSTEM), linux-usb@vger.kernel.org (open list:USB SUBSYSTEM), linux-trace-kernel@vger.kernel.org (open list:TRACING), AceLan Kao , Kai-Heng Feng , Mark Pearson , =?UTF-8?q?Merthan=20Karaka=C5=9F?= , Eric Naim , "Mario Limonciello (AMD)" Subject: [PATCH v6 05/11] PCI: PM: Disable device wakeups when halting system through S4 flow Date: Sun, 17 Aug 2025 21:00:55 -0500 Message-ID: <20250818020101.3619237-6-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250818020101.3619237-1-superm1@kernel.org> References: <20250818020101.3619237-1-superm1@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" PCI devices can be programmed as a wakeup source from low power states by sysfs. However when using the S4 flow to go into S5 these wakeup sources should be disabled to avoid what users would perceive as spurious wakeup events. Tested-by: Eric Naim Signed-off-by: Mario Limonciello (AMD) --- v5: * Re-order * Add tags v4: * https://lore.kernel.org/linux-pci/20250616175019.3471583-1-superm1@kernel.org/ --- drivers/pci/pci-driver.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index 63665240ae87f..f201d298d7173 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c @@ -1139,6 +1139,10 @@ static int pci_pm_poweroff(struct device *dev) struct pci_dev *pci_dev = to_pci_dev(dev); const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; + if (device_may_wakeup(dev) && + (system_state == SYSTEM_HALT || system_state == SYSTEM_POWER_OFF)) + device_set_wakeup_enable(dev, false); + if (pci_has_legacy_pm_support(pci_dev)) return pci_legacy_suspend(dev, PMSG_HIBERNATE); -- 2.43.0