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 5B763CA101C for ; Sat, 6 Sep 2025 14:37:17 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D0C5610E3A8; Sat, 6 Sep 2025 14:37:16 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.b="GyJSEKbw"; dkim-atps=neutral Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by gabe.freedesktop.org (Postfix) with ESMTPS id A980D10E3AA; Sat, 6 Sep 2025 14:37:15 +0000 (UTC) Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 25E17601D7; Sat, 6 Sep 2025 14:37:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DC572C4CEF8; Sat, 6 Sep 2025 14:37:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1757169434; bh=1i5HEoE6PHb6KQdOsJdeI9fhAnruv3cKTePhpGmwTAY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GyJSEKbwBq4XAWPCBawQvs+Wk/oB5RrtkpPGACGS67kIrgIFavgpFYQAV/3Q/w9jO T82hp5AzHTed51Il47LJtHZnyrm1sYTcThC0PDRAwPAfBdQ0OAGmYfuSMy0KmpSxbH 1sNtkkn0se3rQhuqXQ8bYcerS7ZaeCp4FexspigDQrMkzFxhwsCS/QTlOATclVRKc7 ylc7mVKXJTBv2xqnmPavM7dFq3zbAaIqQFzcyUnLItJGLrH1u5pAqYKzHhNC7L3P6B WZOw90at7csyle5hJe4OXAp9lPWQv3kzvIWv3VpyV/r6xqfypPOt6VaUEZwN3IzkdO Q8JSCK2hV/cUg== From: "Mario Limonciello (AMD)" To: "Rafael J . Wysocki" , Greg Kroah-Hartman , Danilo Krummrich , Bjorn Helgaas Cc: Pavel Machek , Len Brown , =?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 RESEND 07/11] PCI: PM: Run bridge power up actions as part of restore phase Date: Sat, 6 Sep 2025 09:36:38 -0500 Message-ID: <20250906143642.2590808-8-superm1@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250906143642.2590808-1-superm1@kernel.org> References: <20250906143642.2590808-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" Suspend resume actions will check the state of the device and whether bus PM should be skipped. These same actions make sense during hibernation image restore. Apply them there as well. Tested-by: Eric Naim Signed-off-by: Mario Limonciello (AMD) --- drivers/pci/pci-driver.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index 571a3809f163a..fb6f1f60b2f1f 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c @@ -1246,10 +1246,15 @@ static int pci_pm_restore_noirq(struct device *dev) { struct pci_dev *pci_dev = to_pci_dev(dev); const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; + pci_power_t prev_state = pci_dev->current_state; + bool skip_bus_pm = pci_dev->skip_bus_pm; pci_pm_default_resume_early(pci_dev); pci_fixup_device(pci_fixup_resume_early, pci_dev); + if (!skip_bus_pm && prev_state == PCI_D3cold) + pci_pm_bridge_power_up_actions(pci_dev); + if (pci_has_legacy_pm_support(pci_dev)) return 0; -- 2.43.0