From: Greg Kroah-Hartman Date: Wed, 18 Jun 2025 13:04:42 +0000 (+0200) Subject: drop some patches X-Git-Tag: v6.6.94~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=de56ba387ff70783b0399433d3b17207b4c8c5b6;p=thirdparty%2Fkernel%2Fstable-queue.git drop some patches --- diff --git a/queue-6.1/pci-explicitly-put-devices-into-d0-when-initializing.patch b/queue-6.1/pci-explicitly-put-devices-into-d0-when-initializing.patch deleted file mode 100644 index 28ce03e38a..0000000000 --- a/queue-6.1/pci-explicitly-put-devices-into-d0-when-initializing.patch +++ /dev/null @@ -1,108 +0,0 @@ -From ba579d1bb72e6271cf354970db53b9f20d2f1ae7 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 23 Apr 2025 23:31:32 -0500 -Subject: PCI: Explicitly put devices into D0 when initializing - -From: Mario Limonciello - -[ Upstream commit 4d4c10f763d7808fbade28d83d237411603bca05 ] - -AMD BIOS team has root caused an issue that NVMe storage failed to come -back from suspend to a lack of a call to _REG when NVMe device was probed. - -112a7f9c8edbf ("PCI/ACPI: Call _REG when transitioning D-states") added -support for calling _REG when transitioning D-states, but this only works -if the device actually "transitions" D-states. - -967577b062417 ("PCI/PM: Keep runtime PM enabled for unbound PCI devices") -added support for runtime PM on PCI devices, but never actually -'explicitly' sets the device to D0. - -To make sure that devices are in D0 and that platform methods such as -_REG are called, explicitly set all devices into D0 during initialization. - -Fixes: 967577b062417 ("PCI/PM: Keep runtime PM enabled for unbound PCI devices") -Signed-off-by: Mario Limonciello -Signed-off-by: Bjorn Helgaas -Tested-by: Denis Benato -Tested-By: Yijun Shen -Tested-By: David Perry -Reviewed-by: Rafael J. Wysocki -Link: https://patch.msgid.link/20250424043232.1848107-1-superm1@kernel.org -Signed-off-by: Sasha Levin ---- - drivers/pci/pci-driver.c | 6 ------ - drivers/pci/pci.c | 13 ++++++++++--- - drivers/pci/pci.h | 1 + - 3 files changed, 11 insertions(+), 9 deletions(-) - -diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c -index 18e973a91a979..2b04d2d6c116a 100644 ---- a/drivers/pci/pci-driver.c -+++ b/drivers/pci/pci-driver.c -@@ -564,12 +564,6 @@ static void pci_pm_default_resume(struct pci_dev *pci_dev) - pci_enable_wake(pci_dev, PCI_D0, false); - } - --static void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev) --{ -- pci_power_up(pci_dev); -- pci_update_current_state(pci_dev, PCI_D0); --} -- - static void pci_pm_default_resume_early(struct pci_dev *pci_dev) - { - pci_pm_power_up_and_verify_state(pci_dev); -diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c -index 10436a193b3b6..19c9214acfb81 100644 ---- a/drivers/pci/pci.c -+++ b/drivers/pci/pci.c -@@ -3181,6 +3181,12 @@ void pci_d3cold_disable(struct pci_dev *dev) - } - EXPORT_SYMBOL_GPL(pci_d3cold_disable); - -+void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev) -+{ -+ pci_power_up(pci_dev); -+ pci_update_current_state(pci_dev, PCI_D0); -+} -+ - /** - * pci_pm_init - Initialize PM functions of given PCI device - * @dev: PCI device to handle. -@@ -3191,9 +3197,6 @@ void pci_pm_init(struct pci_dev *dev) - u16 status; - u16 pmc; - -- pm_runtime_forbid(&dev->dev); -- pm_runtime_set_active(&dev->dev); -- pm_runtime_enable(&dev->dev); - device_enable_async_suspend(&dev->dev); - dev->wakeup_prepared = false; - -@@ -3255,6 +3258,10 @@ void pci_pm_init(struct pci_dev *dev) - pci_read_config_word(dev, PCI_STATUS, &status); - if (status & PCI_STATUS_IMM_READY) - dev->imm_ready = 1; -+ pci_pm_power_up_and_verify_state(dev); -+ pm_runtime_forbid(&dev->dev); -+ pm_runtime_set_active(&dev->dev); -+ pm_runtime_enable(&dev->dev); - } - - static unsigned long pci_ea_flags(struct pci_dev *dev, u8 prop) -diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h -index 38ad75ce52c32..70b7fd7a0fc7c 100644 ---- a/drivers/pci/pci.h -+++ b/drivers/pci/pci.h -@@ -87,6 +87,7 @@ void pci_dev_adjust_pme(struct pci_dev *dev); - void pci_dev_complete_resume(struct pci_dev *pci_dev); - void pci_config_pm_runtime_get(struct pci_dev *dev); - void pci_config_pm_runtime_put(struct pci_dev *dev); -+void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev); - void pci_pm_init(struct pci_dev *dev); - void pci_ea_init(struct pci_dev *dev); - void pci_msi_init(struct pci_dev *dev); --- -2.39.5 - diff --git a/queue-6.1/series b/queue-6.1/series index 7e283f76a9..8dd712634b 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -152,7 +152,6 @@ nfs-ignore-sb_rdonly-when-remounting-nfs.patch rtc-sh-assign-correct-interrupts-with-dt.patch pci-cadence-fix-runtime-atomic-count-underflow.patch pci-apple-use-gpiod_set_value_cansleep-in-probe-flow.patch -pci-explicitly-put-devices-into-d0-when-initializing.patch phy-qcom-qmp-usb-fix-an-null-vs-is_err-bug.patch dmaengine-ti-add-null-check-in-udma_probe.patch pci-dpc-initialize-aer_err_info-before-using-it.patch diff --git a/queue-6.12/pci-explicitly-put-devices-into-d0-when-initializing.patch b/queue-6.12/pci-explicitly-put-devices-into-d0-when-initializing.patch deleted file mode 100644 index 300cbc0362..0000000000 --- a/queue-6.12/pci-explicitly-put-devices-into-d0-when-initializing.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 738fdb3f3df44bafcb5c26d5725164f26679d196 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 23 Apr 2025 23:31:32 -0500 -Subject: PCI: Explicitly put devices into D0 when initializing - -From: Mario Limonciello - -[ Upstream commit 4d4c10f763d7808fbade28d83d237411603bca05 ] - -AMD BIOS team has root caused an issue that NVMe storage failed to come -back from suspend to a lack of a call to _REG when NVMe device was probed. - -112a7f9c8edbf ("PCI/ACPI: Call _REG when transitioning D-states") added -support for calling _REG when transitioning D-states, but this only works -if the device actually "transitions" D-states. - -967577b062417 ("PCI/PM: Keep runtime PM enabled for unbound PCI devices") -added support for runtime PM on PCI devices, but never actually -'explicitly' sets the device to D0. - -To make sure that devices are in D0 and that platform methods such as -_REG are called, explicitly set all devices into D0 during initialization. - -Fixes: 967577b062417 ("PCI/PM: Keep runtime PM enabled for unbound PCI devices") -Signed-off-by: Mario Limonciello -Signed-off-by: Bjorn Helgaas -Tested-by: Denis Benato -Tested-By: Yijun Shen -Tested-By: David Perry -Reviewed-by: Rafael J. Wysocki -Link: https://patch.msgid.link/20250424043232.1848107-1-superm1@kernel.org -Signed-off-by: Sasha Levin ---- - drivers/pci/pci-driver.c | 6 ------ - drivers/pci/pci.c | 13 ++++++++++--- - drivers/pci/pci.h | 1 + - 3 files changed, 11 insertions(+), 9 deletions(-) - -diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c -index 35270172c8331..a90990157e0b7 100644 ---- a/drivers/pci/pci-driver.c -+++ b/drivers/pci/pci-driver.c -@@ -555,12 +555,6 @@ static void pci_pm_default_resume(struct pci_dev *pci_dev) - pci_enable_wake(pci_dev, PCI_D0, false); - } - --static void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev) --{ -- pci_power_up(pci_dev); -- pci_update_current_state(pci_dev, PCI_D0); --} -- - static void pci_pm_default_resume_early(struct pci_dev *pci_dev) - { - pci_pm_power_up_and_verify_state(pci_dev); -diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c -index 7ca5422feb2d4..1a6639dbe81b3 100644 ---- a/drivers/pci/pci.c -+++ b/drivers/pci/pci.c -@@ -3185,6 +3185,12 @@ void pci_d3cold_disable(struct pci_dev *dev) - } - EXPORT_SYMBOL_GPL(pci_d3cold_disable); - -+void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev) -+{ -+ pci_power_up(pci_dev); -+ pci_update_current_state(pci_dev, PCI_D0); -+} -+ - /** - * pci_pm_init - Initialize PM functions of given PCI device - * @dev: PCI device to handle. -@@ -3195,9 +3201,6 @@ void pci_pm_init(struct pci_dev *dev) - u16 status; - u16 pmc; - -- pm_runtime_forbid(&dev->dev); -- pm_runtime_set_active(&dev->dev); -- pm_runtime_enable(&dev->dev); - device_enable_async_suspend(&dev->dev); - dev->wakeup_prepared = false; - -@@ -3259,6 +3262,10 @@ void pci_pm_init(struct pci_dev *dev) - pci_read_config_word(dev, PCI_STATUS, &status); - if (status & PCI_STATUS_IMM_READY) - dev->imm_ready = 1; -+ pci_pm_power_up_and_verify_state(dev); -+ pm_runtime_forbid(&dev->dev); -+ pm_runtime_set_active(&dev->dev); -+ pm_runtime_enable(&dev->dev); - } - - static unsigned long pci_ea_flags(struct pci_dev *dev, u8 prop) -diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h -index 65df6d2ac0032..c1a5874eeb6cf 100644 ---- a/drivers/pci/pci.h -+++ b/drivers/pci/pci.h -@@ -146,6 +146,7 @@ void pci_dev_adjust_pme(struct pci_dev *dev); - void pci_dev_complete_resume(struct pci_dev *pci_dev); - void pci_config_pm_runtime_get(struct pci_dev *dev); - void pci_config_pm_runtime_put(struct pci_dev *dev); -+void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev); - void pci_pm_init(struct pci_dev *dev); - void pci_ea_init(struct pci_dev *dev); - void pci_msi_init(struct pci_dev *dev); --- -2.39.5 - diff --git a/queue-6.12/series b/queue-6.12/series index 6b71a38698..ae3ee34cae 100644 --- a/queue-6.12/series +++ b/queue-6.12/series @@ -310,7 +310,6 @@ pci-print-the-actual-delay-time-in-pci_bridge_wait_f.patch pci-rcar-gen4-set-ep-bar4-fixed-size.patch pci-cadence-fix-runtime-atomic-count-underflow.patch pci-apple-use-gpiod_set_value_cansleep-in-probe-flow.patch -pci-explicitly-put-devices-into-d0-when-initializing.patch phy-qcom-qmp-usb-fix-an-null-vs-is_err-bug.patch dmaengine-ti-add-null-check-in-udma_probe.patch pci-acpi-fix-allocated-memory-release-on-error-in-pc.patch @@ -337,7 +336,6 @@ vt-remove-vt_resize-and-vt_resizex-from-vt_compat_io.patch mei-vsc-cast-tx_buf-to-__be32-when-passed-to-cpu_to_.patch iio-adc-pac1934-fix-typo-in-documentation-link.patch iio-adc-mcp3911-fix-device-dependent-mappings-for-co.patch -usb-serial-bus-fix-const-issue-in-usb_serial_device_.patch usb-gadget-udc-fix-const-issue-in-gadget_match_drive.patch usb-typec-fix-const-issue-in-typec_match.patch loop-add-file_start_write-and-file_end_write.patch diff --git a/queue-6.12/usb-serial-bus-fix-const-issue-in-usb_serial_device_.patch b/queue-6.12/usb-serial-bus-fix-const-issue-in-usb_serial_device_.patch deleted file mode 100644 index 7476548cea..0000000000 --- a/queue-6.12/usb-serial-bus-fix-const-issue-in-usb_serial_device_.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 212b3be266bc49bae1a28436dec0f184edc48b24 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 21 May 2025 15:41:34 +0200 -Subject: USB: serial: bus: fix const issue in usb_serial_device_match() - -From: Greg Kroah-Hartman - -[ Upstream commit 92cd405b648605db4da866f3b9818b271ae84ef0 ] - -usb_serial_device_match() takes a const pointer, and then decides to -cast it away into a non-const one, which is not a good thing to do -overall. Fix this up by properly setting the pointers to be const to -preserve that attribute. - -Fixes: d69d80484598 ("driver core: have match() callback in struct bus_type take a const *") -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Johan Hovold -Signed-off-by: Sasha Levin ---- - drivers/usb/serial/bus.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/usb/serial/bus.c b/drivers/usb/serial/bus.c -index d200e2c29a8ff..45cb78864c96d 100644 ---- a/drivers/usb/serial/bus.c -+++ b/drivers/usb/serial/bus.c -@@ -17,7 +17,7 @@ static int usb_serial_device_match(struct device *dev, - const struct device_driver *drv) - { - const struct usb_serial_port *port = to_usb_serial_port(dev); -- struct usb_serial_driver *driver = to_usb_serial_driver(drv); -+ const struct usb_serial_driver *driver = to_usb_serial_driver(drv); - - /* - * drivers are already assigned to ports in serial_probe so it's --- -2.39.5 - diff --git a/queue-6.15/pci-explicitly-put-devices-into-d0-when-initializing.patch b/queue-6.15/pci-explicitly-put-devices-into-d0-when-initializing.patch deleted file mode 100644 index 6e6ab5f687..0000000000 --- a/queue-6.15/pci-explicitly-put-devices-into-d0-when-initializing.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 564ca755d404028eb49dccfd10e359674636c609 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 23 Apr 2025 23:31:32 -0500 -Subject: PCI: Explicitly put devices into D0 when initializing - -From: Mario Limonciello - -[ Upstream commit 4d4c10f763d7808fbade28d83d237411603bca05 ] - -AMD BIOS team has root caused an issue that NVMe storage failed to come -back from suspend to a lack of a call to _REG when NVMe device was probed. - -112a7f9c8edbf ("PCI/ACPI: Call _REG when transitioning D-states") added -support for calling _REG when transitioning D-states, but this only works -if the device actually "transitions" D-states. - -967577b062417 ("PCI/PM: Keep runtime PM enabled for unbound PCI devices") -added support for runtime PM on PCI devices, but never actually -'explicitly' sets the device to D0. - -To make sure that devices are in D0 and that platform methods such as -_REG are called, explicitly set all devices into D0 during initialization. - -Fixes: 967577b062417 ("PCI/PM: Keep runtime PM enabled for unbound PCI devices") -Signed-off-by: Mario Limonciello -Signed-off-by: Bjorn Helgaas -Tested-by: Denis Benato -Tested-By: Yijun Shen -Tested-By: David Perry -Reviewed-by: Rafael J. Wysocki -Link: https://patch.msgid.link/20250424043232.1848107-1-superm1@kernel.org -Signed-off-by: Sasha Levin ---- - drivers/pci/pci-driver.c | 6 ------ - drivers/pci/pci.c | 13 ++++++++++--- - drivers/pci/pci.h | 1 + - 3 files changed, 11 insertions(+), 9 deletions(-) - -diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c -index c8bd71a739f72..082918ce03d8a 100644 ---- a/drivers/pci/pci-driver.c -+++ b/drivers/pci/pci-driver.c -@@ -555,12 +555,6 @@ static void pci_pm_default_resume(struct pci_dev *pci_dev) - pci_enable_wake(pci_dev, PCI_D0, false); - } - --static void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev) --{ -- pci_power_up(pci_dev); -- pci_update_current_state(pci_dev, PCI_D0); --} -- - static void pci_pm_default_resume_early(struct pci_dev *pci_dev) - { - pci_pm_power_up_and_verify_state(pci_dev); -diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c -index 4d84ed4124844..f1a8f05a61054 100644 ---- a/drivers/pci/pci.c -+++ b/drivers/pci/pci.c -@@ -3192,6 +3192,12 @@ void pci_d3cold_disable(struct pci_dev *dev) - } - EXPORT_SYMBOL_GPL(pci_d3cold_disable); - -+void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev) -+{ -+ pci_power_up(pci_dev); -+ pci_update_current_state(pci_dev, PCI_D0); -+} -+ - /** - * pci_pm_init - Initialize PM functions of given PCI device - * @dev: PCI device to handle. -@@ -3202,9 +3208,6 @@ void pci_pm_init(struct pci_dev *dev) - u16 status; - u16 pmc; - -- pm_runtime_forbid(&dev->dev); -- pm_runtime_set_active(&dev->dev); -- pm_runtime_enable(&dev->dev); - device_enable_async_suspend(&dev->dev); - dev->wakeup_prepared = false; - -@@ -3266,6 +3269,10 @@ void pci_pm_init(struct pci_dev *dev) - pci_read_config_word(dev, PCI_STATUS, &status); - if (status & PCI_STATUS_IMM_READY) - dev->imm_ready = 1; -+ pci_pm_power_up_and_verify_state(dev); -+ pm_runtime_forbid(&dev->dev); -+ pm_runtime_set_active(&dev->dev); -+ pm_runtime_enable(&dev->dev); - } - - static unsigned long pci_ea_flags(struct pci_dev *dev, u8 prop) -diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h -index 7db798bdcaaae..7e206c173599f 100644 ---- a/drivers/pci/pci.h -+++ b/drivers/pci/pci.h -@@ -148,6 +148,7 @@ void pci_dev_adjust_pme(struct pci_dev *dev); - void pci_dev_complete_resume(struct pci_dev *pci_dev); - void pci_config_pm_runtime_get(struct pci_dev *dev); - void pci_config_pm_runtime_put(struct pci_dev *dev); -+void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev); - void pci_pm_init(struct pci_dev *dev); - void pci_ea_init(struct pci_dev *dev); - void pci_msi_init(struct pci_dev *dev); --- -2.39.5 - diff --git a/queue-6.15/series b/queue-6.15/series index f5c58ea506..b1cb45e4a0 100644 --- a/queue-6.15/series +++ b/queue-6.15/series @@ -498,7 +498,6 @@ pci-rcar-gen4-set-ep-bar4-fixed-size.patch pci-cadence-fix-runtime-atomic-count-underflow.patch pci-apple-use-gpiod_set_value_cansleep-in-probe-flow.patch pci-imx6-save-and-restore-the-lut-setting-during-sus.patch -pci-explicitly-put-devices-into-d0-when-initializing.patch phy-qcom-qmp-usb-fix-an-null-vs-is_err-bug.patch revert-phy-qcom-qusb2-add-qusb2-support-for-ipq5424.patch phy-qcom-qusb2-reuse-the-ipq6018-settings-for-ipq542.patch @@ -543,7 +542,6 @@ char-tlclk-fix-correct-sysfs-directory-path-for-tlcl.patch mei-vsc-cast-tx_buf-to-__be32-when-passed-to-cpu_to_.patch iio-adc-pac1934-fix-typo-in-documentation-link.patch iio-adc-mcp3911-fix-device-dependent-mappings-for-co.patch -usb-serial-bus-fix-const-issue-in-usb_serial_device_.patch usb-gadget-udc-fix-const-issue-in-gadget_match_drive.patch usb-typec-fix-const-issue-in-typec_match.patch loop-add-file_start_write-and-file_end_write.patch diff --git a/queue-6.15/usb-serial-bus-fix-const-issue-in-usb_serial_device_.patch b/queue-6.15/usb-serial-bus-fix-const-issue-in-usb_serial_device_.patch deleted file mode 100644 index 723d71825b..0000000000 --- a/queue-6.15/usb-serial-bus-fix-const-issue-in-usb_serial_device_.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 0e91be50efc1a26ec9047dadc980631d31ef8578 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 21 May 2025 15:41:34 +0200 -Subject: USB: serial: bus: fix const issue in usb_serial_device_match() - -From: Greg Kroah-Hartman - -[ Upstream commit 92cd405b648605db4da866f3b9818b271ae84ef0 ] - -usb_serial_device_match() takes a const pointer, and then decides to -cast it away into a non-const one, which is not a good thing to do -overall. Fix this up by properly setting the pointers to be const to -preserve that attribute. - -Fixes: d69d80484598 ("driver core: have match() callback in struct bus_type take a const *") -Signed-off-by: Greg Kroah-Hartman -Signed-off-by: Johan Hovold -Signed-off-by: Sasha Levin ---- - drivers/usb/serial/bus.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/usb/serial/bus.c b/drivers/usb/serial/bus.c -index 2fea1b1db4a26..9e2a18c0b2183 100644 ---- a/drivers/usb/serial/bus.c -+++ b/drivers/usb/serial/bus.c -@@ -17,7 +17,7 @@ static int usb_serial_device_match(struct device *dev, - const struct device_driver *drv) - { - const struct usb_serial_port *port = to_usb_serial_port(dev); -- struct usb_serial_driver *driver = to_usb_serial_driver(drv); -+ const struct usb_serial_driver *driver = to_usb_serial_driver(drv); - - /* - * drivers are already assigned to ports in serial_probe so it's --- -2.39.5 - diff --git a/queue-6.6/pci-explicitly-put-devices-into-d0-when-initializing.patch b/queue-6.6/pci-explicitly-put-devices-into-d0-when-initializing.patch deleted file mode 100644 index 96da7d0c2a..0000000000 --- a/queue-6.6/pci-explicitly-put-devices-into-d0-when-initializing.patch +++ /dev/null @@ -1,108 +0,0 @@ -From ef5fe48ce5082a4ffe6ae9e21e850e1865c27125 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Wed, 23 Apr 2025 23:31:32 -0500 -Subject: PCI: Explicitly put devices into D0 when initializing - -From: Mario Limonciello - -[ Upstream commit 4d4c10f763d7808fbade28d83d237411603bca05 ] - -AMD BIOS team has root caused an issue that NVMe storage failed to come -back from suspend to a lack of a call to _REG when NVMe device was probed. - -112a7f9c8edbf ("PCI/ACPI: Call _REG when transitioning D-states") added -support for calling _REG when transitioning D-states, but this only works -if the device actually "transitions" D-states. - -967577b062417 ("PCI/PM: Keep runtime PM enabled for unbound PCI devices") -added support for runtime PM on PCI devices, but never actually -'explicitly' sets the device to D0. - -To make sure that devices are in D0 and that platform methods such as -_REG are called, explicitly set all devices into D0 during initialization. - -Fixes: 967577b062417 ("PCI/PM: Keep runtime PM enabled for unbound PCI devices") -Signed-off-by: Mario Limonciello -Signed-off-by: Bjorn Helgaas -Tested-by: Denis Benato -Tested-By: Yijun Shen -Tested-By: David Perry -Reviewed-by: Rafael J. Wysocki -Link: https://patch.msgid.link/20250424043232.1848107-1-superm1@kernel.org -Signed-off-by: Sasha Levin ---- - drivers/pci/pci-driver.c | 6 ------ - drivers/pci/pci.c | 13 ++++++++++--- - drivers/pci/pci.h | 1 + - 3 files changed, 11 insertions(+), 9 deletions(-) - -diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c -index 9c59bf03d6579..258ba97d07242 100644 ---- a/drivers/pci/pci-driver.c -+++ b/drivers/pci/pci-driver.c -@@ -564,12 +564,6 @@ static void pci_pm_default_resume(struct pci_dev *pci_dev) - pci_enable_wake(pci_dev, PCI_D0, false); - } - --static void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev) --{ -- pci_power_up(pci_dev); -- pci_update_current_state(pci_dev, PCI_D0); --} -- - static void pci_pm_default_resume_early(struct pci_dev *pci_dev) - { - pci_pm_power_up_and_verify_state(pci_dev); -diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c -index 503304aba9eac..89c6b161f80c9 100644 ---- a/drivers/pci/pci.c -+++ b/drivers/pci/pci.c -@@ -3227,6 +3227,12 @@ void pci_d3cold_disable(struct pci_dev *dev) - } - EXPORT_SYMBOL_GPL(pci_d3cold_disable); - -+void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev) -+{ -+ pci_power_up(pci_dev); -+ pci_update_current_state(pci_dev, PCI_D0); -+} -+ - /** - * pci_pm_init - Initialize PM functions of given PCI device - * @dev: PCI device to handle. -@@ -3237,9 +3243,6 @@ void pci_pm_init(struct pci_dev *dev) - u16 status; - u16 pmc; - -- pm_runtime_forbid(&dev->dev); -- pm_runtime_set_active(&dev->dev); -- pm_runtime_enable(&dev->dev); - device_enable_async_suspend(&dev->dev); - dev->wakeup_prepared = false; - -@@ -3301,6 +3304,10 @@ void pci_pm_init(struct pci_dev *dev) - pci_read_config_word(dev, PCI_STATUS, &status); - if (status & PCI_STATUS_IMM_READY) - dev->imm_ready = 1; -+ pci_pm_power_up_and_verify_state(dev); -+ pm_runtime_forbid(&dev->dev); -+ pm_runtime_set_active(&dev->dev); -+ pm_runtime_enable(&dev->dev); - } - - static unsigned long pci_ea_flags(struct pci_dev *dev, u8 prop) -diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h -index d69a17947ffce..a621ba243c25e 100644 ---- a/drivers/pci/pci.h -+++ b/drivers/pci/pci.h -@@ -92,6 +92,7 @@ void pci_dev_adjust_pme(struct pci_dev *dev); - void pci_dev_complete_resume(struct pci_dev *pci_dev); - void pci_config_pm_runtime_get(struct pci_dev *dev); - void pci_config_pm_runtime_put(struct pci_dev *dev); -+void pci_pm_power_up_and_verify_state(struct pci_dev *pci_dev); - void pci_pm_init(struct pci_dev *dev); - void pci_ea_init(struct pci_dev *dev); - void pci_msi_init(struct pci_dev *dev); --- -2.39.5 - diff --git a/queue-6.6/series b/queue-6.6/series index 49f8e190a9..b53118a8c5 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -222,7 +222,6 @@ rtc-sh-assign-correct-interrupts-with-dt.patch pci-print-the-actual-delay-time-in-pci_bridge_wait_f.patch pci-cadence-fix-runtime-atomic-count-underflow.patch pci-apple-use-gpiod_set_value_cansleep-in-probe-flow.patch -pci-explicitly-put-devices-into-d0-when-initializing.patch phy-qcom-qmp-usb-fix-an-null-vs-is_err-bug.patch dmaengine-ti-add-null-check-in-udma_probe.patch pci-dpc-initialize-aer_err_info-before-using-it.patch