On Thu, May 24, 2018 at 04:36:24PM +0200, Marek Vasut wrote: > If anything fails past phy_init_fn() and the system is a Gen3 with > a PHY, the PHY will be left on and inited. This is caused by the > phy_init_fn, which is in fact a pointer to rcar_pcie_phy_init_gen3() > function, which starts the PHY, yet has no counterpart in the failpath. > Add that counterpart. > > Signed-off-by: Marek Vasut <marek.vasut+renesas@xxxxxxxxx> > Cc: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > Cc: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> > Cc: Phil Edworthy <phil.edworthy@xxxxxxxxxxx> > Cc: Simon Horman <horms+renesas@xxxxxxxxxxxx> > Cc: Wolfram Sang <wsa@xxxxxxxxxxxxx> > Cc: linux-renesas-soc@xxxxxxxxxxxxxxx > Fixes: 517ca93a7159 ("PCI: rcar: Add R-Car gen3 PHY support") > --- > V4: New patch > --- > drivers/pci/host/pcie-rcar.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) Applied to pci/controller-fixes to be tentatively merged at -rc4, thanks. Lorenzo > diff --git a/drivers/pci/host/pcie-rcar.c b/drivers/pci/host/pcie-rcar.c > index 636c3c5095d2..695781934f0a 100644 > --- a/drivers/pci/host/pcie-rcar.c > +++ b/drivers/pci/host/pcie-rcar.c > @@ -1163,7 +1163,7 @@ static int rcar_pcie_probe(struct platform_device *pdev) > if (rcar_pcie_hw_init(pcie)) { > dev_info(dev, "PCIe link down\n"); > err = -ENODEV; > - goto err_clk_disable; > + goto err_phy_shutdown; > } > > data = rcar_pci_read_reg(pcie, MACSR); > @@ -1175,7 +1175,7 @@ static int rcar_pcie_probe(struct platform_device *pdev) > dev_err(dev, > "failed to enable MSI support: %d\n", > err); > - goto err_clk_disable; > + goto err_phy_shutdown; > } > } > > @@ -1189,6 +1189,12 @@ static int rcar_pcie_probe(struct platform_device *pdev) > if (IS_ENABLED(CONFIG_PCI_MSI)) > rcar_pcie_teardown_msi(pcie); > > +err_phy_shutdown: > + if (pcie->phy) { > + phy_power_off(pcie->phy); > + phy_exit(pcie->phy); > + } > + > err_clk_disable: > clk_disable_unprepare(pcie->bus_clk); > > -- > 2.16.2 >