summaryrefslogtreecommitdiff
path: root/target/linux/layerscape/patches-4.4/8230-layerscape-pci-fix-linkup-issue.patch
blob: f28776cba17ea144886e0f927e8c27bc732afa36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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(-)

--- 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
 static int ls_pcie_link_up(struct pcie_port *pp)
 {
 	struct ls_pcie *pcie = to_ls_pcie(pp);
-	u32 state;
+	u32 state, offset;
 
-	state = (ioread32(pcie->lut + pcie->drvdata->lut_dbg) >>
-		 pcie->drvdata->ltssm_shift) &
-		 LTSSM_STATE_MASK;
+	if (of_get_property(pp->dev->of_node, "fsl,lut_diff", NULL))
+		offset = 0x407fc;
+	else
+		offset = PCIE_LUT_DBG;
+
+	state = (ioread32(pcie->lut + offset) >>
+			pcie->drvdata->ltssm_shift) &
+		LTSSM_STATE_MASK;
 
 	if (state < LTSSM_PCIE_L0)
 		return 0;