summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/common.c
diff options
context:
space:
mode:
authorDiwakar Tundlam <dtundlam@nvidia.com>2011-12-02 15:49:42 -0800
committerVarun Wadekar <vwadekar@nvidia.com>2011-12-08 18:08:51 +0530
commitf4ca296f90a173c299194a57f259f4c58952f0f5 (patch)
tree6ee9d6b9f198092b3a05a6ba3ab6affe1a9f35e1 /arch/arm/mach-tegra/common.c
parent4180067cd919d5258bf47b619a5c7c90a1c209cd (diff)
arm: tegra: Set G-CPU L2 cache latency based on chip sku
Bug 909628 Change-Id: I945c3fe7675cf481b770be7025d436b6bf4e9ee6 Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com> Reviewed-on: http://git-master/r/68073 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/common.c')
-rw-r--r--arch/arm/mach-tegra/common.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c
index 642d0aea76a8..21ffbe44ed76 100644
--- a/arch/arm/mach-tegra/common.c
+++ b/arch/arm/mach-tegra/common.c
@@ -262,6 +262,7 @@ void tegra_init_cache(bool init)
#ifdef CONFIG_CACHE_L2X0
void __iomem *p = IO_ADDRESS(TEGRA_ARM_PERIF_BASE) + 0x3000;
u32 aux_ctrl;
+ u32 speedo;
#ifdef CONFIG_TRUSTED_FOUNDATIONS
/* issue the SMC to enable the L2 */
@@ -288,9 +289,15 @@ void tegra_init_cache(bool init)
writel(0x221, p + L2X0_TAG_LATENCY_CTRL);
writel(0x221, p + L2X0_DATA_LATENCY_CTRL);
} else {
- /* FIXME: This should be based on speedo id. */
- writel(0x442, p + L2X0_TAG_LATENCY_CTRL);
- writel(0x552, p + L2X0_DATA_LATENCY_CTRL);
+ /* relax l2-cache latency for speedos 4,5,6 (T33's chips) */
+ speedo = tegra_cpu_speedo_id();
+ if (speedo == 4 || speedo == 5 || speedo == 6) {
+ writel(0x442, p + L2X0_TAG_LATENCY_CTRL);
+ writel(0x552, p + L2X0_DATA_LATENCY_CTRL);
+ } else {
+ writel(0x441, p + L2X0_TAG_LATENCY_CTRL);
+ writel(0x551, p + L2X0_DATA_LATENCY_CTRL);
+ }
}
#else
writel(0x770, p + L2X0_TAG_LATENCY_CTRL);