summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2014-06-23 17:26:31 +0200
committerMax Krummenacher <max.krummenacher@toradex.com>2014-06-23 17:26:31 +0200
commit173dae0b389c8a291ddd3b03cab308280b74ef34 (patch)
treef95a9dc322cab92d798d0a7cf636da82a96bae56
parentb5d9cf67a9593c07ab9d74f1d5cf83a497d577a4 (diff)
pci-imx6.c: add config option to force GEN1 speed
-rw-r--r--drivers/pci/host/Kconfig3
-rw-r--r--drivers/pci/host/pci-imx6.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/drivers/pci/host/Kconfig b/drivers/pci/host/Kconfig
index 120714876e83..9d782b2c824d 100644
--- a/drivers/pci/host/Kconfig
+++ b/drivers/pci/host/Kconfig
@@ -20,6 +20,9 @@ config PCI_IMX6
select PCIEPORTBUS
select PCIE_DW
+config PCI_FORCE_GEN1
+ bool "Force GEN1 speed on the PCIe controller (e.g. don't allow GEN2)"
+
config EP_MODE_IN_EP_RC_SYS
bool "PCI Express EP mode in the IMX6 RC/EP interconnection system"
depends on PCI_IMX6
diff --git a/drivers/pci/host/pci-imx6.c b/drivers/pci/host/pci-imx6.c
index b434d6228430..f201d8905100 100644
--- a/drivers/pci/host/pci-imx6.c
+++ b/drivers/pci/host/pci-imx6.c
@@ -381,7 +381,7 @@ static int imx6_pcie_start_link(struct pcie_port *pp)
ret = imx6_pcie_wait_for_link(pp);
if (ret)
return ret;
-
+#ifndef CONFIG_PCI_FORCE_GEN1
/* Allow Gen2 mode after the link is up. */
tmp = readl(pp->dbi_base + PCIE_RC_LCR);
tmp &= ~PCIE_RC_LCR_MAX_LINK_SPEEDS_MASK;
@@ -411,6 +411,9 @@ static int imx6_pcie_start_link(struct pcie_port *pp)
/* Make sure link training is finished as well! */
ret = imx6_pcie_wait_for_link(pp);
+#else
+ dev_info(pp->dev, "Configuration forces GEN1\n");
+#endif /* CONFIG_PCI_FORCE_GEN1 */
if (ret) {
dev_err(pp->dev, "Failed to bring link up!\n");