diff options
-rw-r--r-- | drivers/pci/controller/dwc/pci-imx6.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 26e1e974b0dd..11b73d733dae 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c | |||
@@ -42,6 +42,7 @@ enum imx6_pcie_variants { | |||
42 | }; | 42 | }; |
43 | 43 | ||
44 | #define IMX6_PCIE_FLAG_IMX6_PHY BIT(0) | 44 | #define IMX6_PCIE_FLAG_IMX6_PHY BIT(0) |
45 | #define IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE BIT(1) | ||
45 | 46 | ||
46 | struct imx6_pcie_drvdata { | 47 | struct imx6_pcie_drvdata { |
47 | enum imx6_pcie_variants variant; | 48 | enum imx6_pcie_variants variant; |
@@ -710,7 +711,8 @@ static int imx6_pcie_establish_link(struct imx6_pcie *imx6_pcie) | |||
710 | tmp |= PORT_LOGIC_SPEED_CHANGE; | 711 | tmp |= PORT_LOGIC_SPEED_CHANGE; |
711 | dw_pcie_writel_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL, tmp); | 712 | dw_pcie_writel_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL, tmp); |
712 | 713 | ||
713 | if (imx6_pcie->drvdata->variant != IMX7D) { | 714 | if (imx6_pcie->drvdata->flags & |
715 | IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE) { | ||
714 | /* | 716 | /* |
715 | * On i.MX7, DIRECT_SPEED_CHANGE behaves differently | 717 | * On i.MX7, DIRECT_SPEED_CHANGE behaves differently |
716 | * from i.MX6 family when no link speed transition | 718 | * from i.MX6 family when no link speed transition |
@@ -1099,15 +1101,18 @@ static void imx6_pcie_shutdown(struct platform_device *pdev) | |||
1099 | static const struct imx6_pcie_drvdata drvdata[] = { | 1101 | static const struct imx6_pcie_drvdata drvdata[] = { |
1100 | [IMX6Q] = { | 1102 | [IMX6Q] = { |
1101 | .variant = IMX6Q, | 1103 | .variant = IMX6Q, |
1102 | .flags = IMX6_PCIE_FLAG_IMX6_PHY, | 1104 | .flags = IMX6_PCIE_FLAG_IMX6_PHY | |
1105 | IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE, | ||
1103 | }, | 1106 | }, |
1104 | [IMX6SX] = { | 1107 | [IMX6SX] = { |
1105 | .variant = IMX6SX, | 1108 | .variant = IMX6SX, |
1106 | .flags = IMX6_PCIE_FLAG_IMX6_PHY, | 1109 | .flags = IMX6_PCIE_FLAG_IMX6_PHY | |
1110 | IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE, | ||
1107 | }, | 1111 | }, |
1108 | [IMX6QP] = { | 1112 | [IMX6QP] = { |
1109 | .variant = IMX6QP, | 1113 | .variant = IMX6QP, |
1110 | .flags = IMX6_PCIE_FLAG_IMX6_PHY, | 1114 | .flags = IMX6_PCIE_FLAG_IMX6_PHY | |
1115 | IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE, | ||
1111 | }, | 1116 | }, |
1112 | [IMX7D] = { | 1117 | [IMX7D] = { |
1113 | .variant = IMX7D, | 1118 | .variant = IMX7D, |