]> rtime.felk.cvut.cz Git - hercules2020/nv-tegra/linux-4.4.git/blobdiff - drivers/pci/host/pci-tegra.c
pcie: host: tegra: fix remove/shutdown hook
[hercules2020/nv-tegra/linux-4.4.git] / drivers / pci / host / pci-tegra.c
index dfbbf65c099069ca43d2518846d342be227632ec..85a1bbe9c066c8ac0ec4b3a265c97d657c33d346 100644 (file)
@@ -4767,11 +4767,16 @@ static int tegra_pcie_probe(struct platform_device *pdev)
        return ret;
 
 release_regulators:
+#if defined(CONFIG_ARCH_TEGRA_21x_SOC)
+       if (tegra_platform_is_silicon())
+               phy_exit(pcie->u_phy);
+#endif
        devm_kfree(&pdev->dev, pcie->pcie_regulators);
 release_platdata:
        devm_kfree(&pdev->dev, pcie->plat_data);
 release_drvdata:
        devm_kfree(&pdev->dev, pcie);
+       platform_set_drvdata(pdev, NULL);
        return ret;
 }
 
@@ -4782,6 +4787,9 @@ static int tegra_pcie_remove(struct platform_device *pdev)
 
        PR_FUNC_LINE;
 
+       if (!pcie)
+               return 0;
+
        if (cancel_delayed_work_sync(&pcie->detect_delay))
                return 0;
        if (IS_ENABLED(CONFIG_DEBUG_FS))