]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
PCI: mediatek-gen3: Do full device power down on removal
authorChen-Yu Tsai <wenst@chromium.org>
Tue, 5 May 2026 10:59:16 +0000 (18:59 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 18 May 2026 17:35:23 +0000 (12:35 -0500)
When power control for downstream devices was introduced in the
mediatek-gen3 PCIe controller driver, only the power to the downstream
devices was cut when the controller driver is removed. This matched
existing behavior, but in hindsight a proper power down sequence should
have been followed.

Call mtk_pcie_devices_power_down() on driver removal so that in addition
to removing power from the downstream devices, PERST# is asserted.

Fixes: 1a152e21940a ("PCI: mediatek-gen3: Integrate new pwrctrl API")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260505105918.1823170-1-wenst@chromium.org
drivers/pci/controller/pcie-mediatek-gen3.c

index 8aec57626f5f46ed19175b6209708f3e97625066..1da2166d1017744e48547bd1beec1cf6d76febfe 100644 (file)
@@ -1280,7 +1280,7 @@ static void mtk_pcie_remove(struct platform_device *pdev)
        pci_remove_root_bus(host->bus);
        pci_unlock_rescan_remove();
 
-       pci_pwrctrl_power_off_devices(pcie->dev);
+       mtk_pcie_devices_power_down(pcie);
        mtk_pcie_power_down(pcie);
        pci_pwrctrl_destroy_devices(pcie->dev);
        mtk_pcie_irq_teardown(pcie);