layerscape: add ls2088ardb device support
[openwrt/staging/yousong.git] / target / linux / layerscape / patches-4.4 / 8230-layerscape-pci-fix-linkup-issue.patch
diff --git a/target/linux/layerscape/patches-4.4/8230-layerscape-pci-fix-linkup-issue.patch b/target/linux/layerscape/patches-4.4/8230-layerscape-pci-fix-linkup-issue.patch
new file mode 100644 (file)
index 0000000..0feb800
--- /dev/null
@@ -0,0 +1,42 @@
+From 1b23a4e0f03063f823ea38065c1106f62a56b408 Mon Sep 17 00:00:00 2001
+From: Mingkai Hu <mingkai.hu@nxp.com>
+Date: Mon, 7 Nov 2016 15:03:51 +0800
+Subject: [PATCH 230/238] layerscape/pci: fix linkup issue
+
+commit e6612d785198abbb39142e2acb63f9bff26ab718
+[context adjustment]
+
+Signed-off-by: Mingkai Hu <mingkai.hu@nxp.com>
+Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
+---
+ drivers/pci/host/pci-layerscape.c |   13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/pci/host/pci-layerscape.c b/drivers/pci/host/pci-layerscape.c
+index 00feabf..f85ebcf 100644
+--- a/drivers/pci/host/pci-layerscape.c
++++ b/drivers/pci/host/pci-layerscape.c
+@@ -158,11 +158,16 @@ static void ls1021_pcie_host_init(struct pcie_port *pp)
+ static int ls_pcie_link_up(struct pcie_port *pp)
+ {
+       struct ls_pcie *pcie = to_ls_pcie(pp);
+-      u32 state;
++      u32 state, offset;
++
++      if (of_get_property(pp->dev->of_node, "fsl,lut_diff", NULL))
++              offset = 0x407fc;
++      else
++              offset = PCIE_LUT_DBG;
+-      state = (ioread32(pcie->lut + pcie->drvdata->lut_dbg) >>
+-               pcie->drvdata->ltssm_shift) &
+-               LTSSM_STATE_MASK;
++      state = (ioread32(pcie->lut + offset) >>
++                      pcie->drvdata->ltssm_shift) &
++              LTSSM_STATE_MASK;
+       if (state < LTSSM_PCIE_L0)
+               return 0;
+-- 
+1.7.9.5
+