aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/pci/controller/dwc/pci-imx6.c13
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
46struct imx6_pcie_drvdata { 47struct 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)
1099static const struct imx6_pcie_drvdata drvdata[] = { 1101static 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,