On Mon, Oct 07, 2019 at 11:41:59AM +0300, Yurii Monakov wrote: > ks_pcie_stop_link function never cleared LTSSM_EN_VAL bit so > link training was never triggered more than once after startup. > In configurations where link can be unstable during early boot, > for example, under low temperature, it will never be established. > > Signed-off-by: Yurii Monakov <monakov.y@xxxxxxxxx> > --- > drivers/pci/controller/dwc/pci-keystone.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/pci/controller/dwc/pci-keystone.c b/drivers/pci/controller/dwc/pci-keystone.c > index f19de60ac991..ea8e7ebd8c4f 100644 > --- a/drivers/pci/controller/dwc/pci-keystone.c > +++ b/drivers/pci/controller/dwc/pci-keystone.c > @@ -510,7 +510,7 @@ static void ks_pcie_stop_link(struct dw_pcie *pci) > /* Disable Link training */ > val = ks_pcie_app_readl(ks_pcie, CMD_STATUS); > val &= ~LTSSM_EN_VAL; > - ks_pcie_app_writel(ks_pcie, CMD_STATUS, LTSSM_EN_VAL | val); Oh yeah, that doesn't look right to me. Good spot. Thanks for this! > + ks_pcie_app_writel(ks_pcie, CMD_STATUS, val); As far as I can work out, this bug existed from the beginning - can you please resend with this tag? Fixes: 0c4ffcfe1fbc ("PCI: keystone: Add TI Keystone PCIe driver") Can you also update the commit subject to emphasise it's a bug fix, e.g. PCI: keystone: Fix ... or similar. Thanks, Andrew Murray > } > > static int ks_pcie_start_link(struct dw_pcie *pci) > -- > 2.17.1 >