diff --git a/drivers/pci/controller/dwc/pcie-tegra194.c b/drivers/pci/controller/dwc/pcie-tegra194.c index 8afce86a7133..e8bb45ddbfec 100644 --- a/drivers/pci/controller/dwc/pcie-tegra194.c +++ b/drivers/pci/controller/dwc/pcie-tegra194.c @@ -2962,6 +2962,7 @@ static void tegra_pcie_dw_remove(struct platform_device *pdev) #endif if (pcie->of_data->mode == DW_PCIE_RC_TYPE) { + disable_irq(pcie->prsnt_irq); if (!pcie->link_state) return; @@ -3098,17 +3099,15 @@ static void tegra_pcie_dw_shutdown(struct platform_device *pdev) struct tegra_pcie_dw *pcie = platform_get_drvdata(pdev); if (pcie->of_data->mode == DW_PCIE_RC_TYPE) { - if (!pcie->link_state) - return; - if (!pm_runtime_enabled(pcie->dev)) - return; - debugfs_remove_recursive(pcie->debugfs); disable_irq(pcie->prsnt_irq); disable_irq(pcie->pci.pp.irq); if (IS_ENABLED(CONFIG_PCI_MSI)) disable_irq(pcie->pci.pp.msi_irq[0]); - + if (!pcie->link_state) + return; + if (!pm_runtime_enabled(pcie->dev)) + return; tegra_pcie_dw_pme_turnoff(pcie); tegra_pcie_unconfig_controller(pcie); pm_runtime_put_sync(pcie->dev);