[PATCH] pci: pcie_dw_meson: fix usb fail when pci link fails to go up

On Amlogic A311D, when the PCIe link fails disabling the related clocks makes USB fail. For an unknown reason, this doesn happen on the S905D3 SoC.
Mimic the Linux behavior by not considering a link failure a probe failure, and continue even if the PCIe link is down.
Reported-by: Art Nikpal email2tema@gmail.com Signed-off-by: Neil Armstrong narmstrong@baylibre.com --- drivers/pci/pcie_dw_meson.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/drivers/pci/pcie_dw_meson.c b/drivers/pci/pcie_dw_meson.c index 0525ecbea6..07da9fa533 100644 --- a/drivers/pci/pcie_dw_meson.c +++ b/drivers/pci/pcie_dw_meson.c @@ -319,15 +319,9 @@ static int meson_pcie_init_port(struct udevice *dev)
pcie_dw_setup_host(&priv->dw);
- ret = meson_pcie_link_up(priv, LINK_SPEED_GEN_2); - if (ret < 0) - goto err_link_up; + meson_pcie_link_up(priv, LINK_SPEED_GEN_2);
return 0; -err_link_up: - clk_disable(&priv->clk_port); - clk_disable(&priv->clk_general); - clk_disable(&priv->clk_pclk); err_deassert_bulk: reset_assert_bulk(&priv->rsts); err_power_off_phy:

On Wed, Sep 8, 2021 at 8:32 PM Neil Armstrong narmstrong@baylibre.com wrote:
On Amlogic A311D, when the PCIe link fails disabling the related clocks makes USB fail. For an unknown reason, this doesn happen on the S905D3 SoC.
Mimic the Linux behavior by not considering a link failure a probe failure, and continue even if the PCIe link is down.
Reported-by: Art Nikpal email2tema@gmail.com Signed-off-by: Neil Armstrong narmstrong@baylibre.com
drivers/pci/pcie_dw_meson.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-)
Reviewed-by: Bin Meng bmeng.cn@gmail.com

On 08/09/2021 14:32, Neil Armstrong wrote:
On Amlogic A311D, when the PCIe link fails disabling the related clocks makes USB fail. For an unknown reason, this doesn happen on the S905D3 SoC.
Mimic the Linux behavior by not considering a link failure a probe failure, and continue even if the PCIe link is down.
Reported-by: Art Nikpal email2tema@gmail.com Signed-off-by: Neil Armstrong narmstrong@baylibre.com
drivers/pci/pcie_dw_meson.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/drivers/pci/pcie_dw_meson.c b/drivers/pci/pcie_dw_meson.c index 0525ecbea6..07da9fa533 100644 --- a/drivers/pci/pcie_dw_meson.c +++ b/drivers/pci/pcie_dw_meson.c @@ -319,15 +319,9 @@ static int meson_pcie_init_port(struct udevice *dev)
pcie_dw_setup_host(&priv->dw);
- ret = meson_pcie_link_up(priv, LINK_SPEED_GEN_2);
- if (ret < 0)
goto err_link_up;
meson_pcie_link_up(priv, LINK_SPEED_GEN_2);
return 0;
-err_link_up:
- clk_disable(&priv->clk_port);
- clk_disable(&priv->clk_general);
- clk_disable(&priv->clk_pclk);
err_deassert_bulk: reset_assert_bulk(&priv->rsts); err_power_off_phy:
Applied to u-boot-amlogic-next
Neil
participants (2)
-
Bin Meng
-
Neil Armstrong