summaryrefslogtreecommitdiff
path: root/drivers/pci
diff options
context:
space:
mode:
authorJay Agarwal <jagarwal@nvidia.com>2013-12-06 17:43:07 +0530
committerJay Agarwal <jagarwal@nvidia.com>2013-12-09 04:22:47 -0800
commit4093d8834195c184bfe76c5a4ecd771ccf45e11b (patch)
tree2f5d2ce62a8642c46851c5b897f24809be2e3428 /drivers/pci
parentad90b49ffa6705e364868cb6b2fe3b4303ccaccd (diff)
ARM: tegra: pcie: Enable Rootport AER support
Enable AER Support for Rootports by programming its private registers Bug 1259524 Change-Id: Ia9d2e5dbcdac1d3e8af114d152be5059518e6eb1 Signed-off-by: Jay Agarwal <jagarwal@nvidia.com> Reviewed-on: http://git-master/r/339209 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Venu Byravarasu <vbyravarasu@nvidia.com> Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/host/pci-tegra.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/pci/host/pci-tegra.c b/drivers/pci/host/pci-tegra.c
index 58894d1ae701..b8a6b85b4849 100644
--- a/drivers/pci/host/pci-tegra.c
+++ b/drivers/pci/host/pci-tegra.c
@@ -209,6 +209,9 @@
#define NV_PCIE2_RP_VEND_XP1 0x00000F04
#define NV_PCIE2_RP_VEND_XP1_LINK_PVT_CTL_L1_ASPM_SUPPORT (1 << 21)
+#define NV_PCIE2_RP_VEND_CTL1 0x00000F48
+#define PCIE2_RP_VEND_CTL1_ERPT (1 << 13)
+
#define NV_PCIE2_RP_VEND_XP_BIST 0x00000F4C
#define PCIE2_RP_VEND_XP_BIST_GOTO_L1_L2_AFTER_DLLP_DONE (1 << 28)
@@ -1476,6 +1479,11 @@ static void tegra_pcie_enable_rp_features(int index)
data |= PCIE2_RP_VEND_XP_BIST_GOTO_L1_L2_AFTER_DLLP_DONE;
rp_writel(data, NV_PCIE2_RP_VEND_XP_BIST, index);
+ /* unhide AER capability */
+ data = rp_readl(NV_PCIE2_RP_VEND_CTL1, index);
+ data |= PCIE2_RP_VEND_CTL1_ERPT;
+ rp_writel(data, NV_PCIE2_RP_VEND_CTL1, index);
+
tegra_pcie_apply_sw_war(index);
}
@@ -1698,7 +1706,7 @@ static void tegra_pcie_pll_pdn(void)
}
/* Enable ASPM support of all devices based on it's capability */
-static void tegra_pcie_enable_aspm_support(void)
+static void tegra_pcie_enable_aspm(void)
{
struct pci_dev *pdev = NULL;
u16 val = 0, aspm = 0;
@@ -1725,7 +1733,7 @@ static void tegra_pcie_enable_features(void)
pr_info("PCIE: Link speed change failed\n");
tegra_pcie_pll_pdn();
- tegra_pcie_enable_aspm_support();
+ tegra_pcie_enable_aspm();
}
static int __init tegra_pcie_init(void)