kernel: bump to 4.4.40
[openwrt/openwrt.git] / target / linux / layerscape / patches-4.4 / 8230-layerscape-pci-fix-linkup-issue.patch
1 From 1b23a4e0f03063f823ea38065c1106f62a56b408 Mon Sep 17 00:00:00 2001
2 From: Mingkai Hu <mingkai.hu@nxp.com>
3 Date: Mon, 7 Nov 2016 15:03:51 +0800
4 Subject: [PATCH 230/238] layerscape/pci: fix linkup issue
5
6 commit e6612d785198abbb39142e2acb63f9bff26ab718
7 [context adjustment]
8
9 Signed-off-by: Mingkai Hu <mingkai.hu@nxp.com>
10 Integrated-by: Zhao Qiang <qiang.zhao@nxp.com>
11 ---
12 drivers/pci/host/pci-layerscape.c | 13 +++++++++----
13 1 file changed, 9 insertions(+), 4 deletions(-)
14
15 --- a/drivers/pci/host/pci-layerscape.c
16 +++ b/drivers/pci/host/pci-layerscape.c
17 @@ -158,11 +158,16 @@ static void ls1021_pcie_host_init(struct
18 static int ls_pcie_link_up(struct pcie_port *pp)
19 {
20 struct ls_pcie *pcie = to_ls_pcie(pp);
21 - u32 state;
22 + u32 state, offset;
23
24 - state = (ioread32(pcie->lut + pcie->drvdata->lut_dbg) >>
25 - pcie->drvdata->ltssm_shift) &
26 - LTSSM_STATE_MASK;
27 + if (of_get_property(pp->dev->of_node, "fsl,lut_diff", NULL))
28 + offset = 0x407fc;
29 + else
30 + offset = PCIE_LUT_DBG;
31 +
32 + state = (ioread32(pcie->lut + offset) >>
33 + pcie->drvdata->ltssm_shift) &
34 + LTSSM_STATE_MASK;
35
36 if (state < LTSSM_PCIE_L0)
37 return 0;