| From 6b1398a0d73bc2fbb3ed441919341acc960cfc14 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 17 Dec 2019 14:38:36 +0300 |
| Subject: PCI: keystone: Fix link training retries initiation |
| |
| From: Yurii Monakov <monakov.y@gmail.com> |
| |
| [ Upstream commit 6df19872d881641e6394f93ef2938cffcbdae5bb ] |
| |
| ks_pcie_stop_link() function does not clear LTSSM_EN_VAL bit so |
| link training was not 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. |
| |
| Fixes: 0c4ffcfe1fbc ("PCI: keystone: Add TI Keystone PCIe driver") |
| Signed-off-by: Yurii Monakov <monakov.y@gmail.com> |
| Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> |
| Acked-by: Andrew Murray <andrew.murray@arm.com> |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/pci/controller/dwc/pci-keystone-dw.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/pci/controller/dwc/pci-keystone-dw.c b/drivers/pci/controller/dwc/pci-keystone-dw.c |
| index 0682213328e93..15c612e853afb 100644 |
| --- a/drivers/pci/controller/dwc/pci-keystone-dw.c |
| +++ b/drivers/pci/controller/dwc/pci-keystone-dw.c |
| @@ -425,7 +425,7 @@ void ks_dw_pcie_initiate_link_train(struct keystone_pcie *ks_pcie) |
| /* Disable Link training */ |
| val = ks_dw_app_readl(ks_pcie, CMD_STATUS); |
| val &= ~LTSSM_EN_VAL; |
| - ks_dw_app_writel(ks_pcie, CMD_STATUS, LTSSM_EN_VAL | val); |
| + ks_dw_app_writel(ks_pcie, CMD_STATUS, val); |
| |
| /* Initiate Link Training */ |
| val = ks_dw_app_readl(ks_pcie, CMD_STATUS); |
| -- |
| 2.20.1 |
| |