From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C4632221FBD; Mon, 18 Aug 2025 02:01:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755482487; cv=none; b=uO4FW10/ZaNgWGuYAbfS2umnjPxNHsHY52XeyzvGhS8ef5kmzKCHIYUg9UNyGbo+6QtddjVprQ8TzY7ZaEuMv8gAvoxWJLNGNO9mM6RUqCYyz7D5pR0C11bnKp0zc0cvOFtyh0i6W2twvjqqfJFay+QptHaXzGxkBbn8JSkLWcE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755482487; c=relaxed/simple; bh=UGv8yMZlE7pfJwSGLN7xjf9pNffnerK8ACuf3st8kZM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ye7e4672ELh21p7vZlW0cO7FmOKFFOhlDrXCKffrLZYDLKtGO4pNU7errLithjFsA0ZRvAnQc0WGjaoJvWd0MfjNAT/ThfXVKziCZE71eMm9f9xsyEP8rjUo1FDLicBhgkWx8EVK0cN3bi7UwD9DY2gkikt9NcUU8DTiyj0N8lM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GhhbmmQ9; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="GhhbmmQ9" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6A9B1C116B1; Mon, 18 Aug 2025 02:01:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1755482487; bh=UGv8yMZlE7pfJwSGLN7xjf9pNffnerK8ACuf3st8kZM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GhhbmmQ9MuLIfqvdFSgxshD0gBCVYLjZMgtPqdJvustP/1C/YbHvrSTINjQNmBc0A /XbaI0ejftjxzctMrwxjEza3X/1US+vlM/FPcceueTN3jBjMDrACBGSZGqFpr+L4Tg BfQAjfk3KlazYl2HJlhTjGF5b3o3vezqc+4B+Dzh3755zY6YZuZCI+yUkz/fJvT2Z/ rOjeqc/cR+I8QHKND4e0rSZYCp+vAfsvegpZ/Gi4o2WfKnnBy7qRiElrCx33z2e3tr g7m3iV+d3VKVeQjOHjlQ7woDgdnNbGDYdbNdO4VWYxn+RIJAnWQveJNMdlLrGfnd2q Jqy6nqowoq5sQ== 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 07/11] PCI: PM: Run bridge power up actions as part of restore phase Date: Sun, 17 Aug 2025 21:00:57 -0500 Message-ID: <20250818020101.3619237-8-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> Precedence: bulk X-Mailing-List: linux-trace-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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) --- v5: * Split out patch --- 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