From 269bc46dfbb2228346cad244a7d3b9ec6d8721fc Mon Sep 17 00:00:00 2001 From: Kefeng Wang Date: Tue, 29 Sep 2015 10:36:42 +0800 Subject: pcie: hisi: bugfix for gen3 To support lsi megaraid 2208 card. Signed-off-by: Kefeng Wang Signed-off-by: Ding Tianhong --- drivers/pci/host/pcie-designware.c | 8 ++++---- drivers/pci/host/pcie-hisi.c | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/pci/host/pcie-designware.c b/drivers/pci/host/pcie-designware.c index 2ef0772192ae..14d9e16d965e 100644 --- a/drivers/pci/host/pcie-designware.c +++ b/drivers/pci/host/pcie-designware.c @@ -506,10 +506,6 @@ int dw_pcie_host_init(struct pcie_port *pp) /* program correct class for RC */ dw_pcie_wr_own_conf(pp, PCI_CLASS_DEVICE, 2, PCI_CLASS_BRIDGE_PCI); - dw_pcie_rd_own_conf(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, 4, &val); - val |= PORT_LOGIC_SPEED_CHANGE; - dw_pcie_wr_own_conf(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, 4, val); - #ifdef CONFIG_ARM64 struct pci_bus *bus; struct msi_controller *msi; @@ -841,6 +837,10 @@ void dw_pcie_setup_rc(struct pcie_port *pp) } dw_pcie_writel_rc(pp, val, PCIE_LINK_WIDTH_SPEED_CONTROL); + dw_pcie_rd_own_conf(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, 4, &val); + val |= PORT_LOGIC_SPEED_CHANGE; + dw_pcie_wr_own_conf(pp, PCIE_LINK_WIDTH_SPEED_CONTROL, 4, val); + /* setup RC BARs */ dw_pcie_writel_rc(pp, 0x00000004, PCI_BASE_ADDRESS_0); dw_pcie_writel_rc(pp, 0x00000000, PCI_BASE_ADDRESS_1); diff --git a/drivers/pci/host/pcie-hisi.c b/drivers/pci/host/pcie-hisi.c index 60105ddcbbb1..e7a44bf95316 100644 --- a/drivers/pci/host/pcie-hisi.c +++ b/drivers/pci/host/pcie-hisi.c @@ -410,6 +410,7 @@ static int hisi_pcie_establish_link(struct pcie_port *pp) } } + mdelay(800); dev_info(pp->dev, "Link up\n"); return 0; -- cgit v1.2.3