aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-tegra
diff options
context:
space:
mode:
authorThierry Reding <thierry.reding@gmail.com>2013-12-13 11:31:04 -0500
committerStephen Warren <swarren@nvidia.com>2013-12-16 16:02:51 -0500
commitc537376cbbbfea2b741b39ad37d5b44104b66e56 (patch)
treef6e783e8c50ba309066cb4bda9d72b6894848548 /arch/arm/mach-tegra
parent9a716579660aa87a4ab4b4d1cac0686fba3707ba (diff)
ARM: tegra: Special-case the 3D clamps on Tegra124
A separate register is used to remove the clamps for the GPU on Tegra124. In order to be able to use the same API, special-case this particular partition. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra')
-rw-r--r--arch/arm/mach-tegra/powergate.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/powergate.c b/arch/arm/mach-tegra/powergate.c
index a8ac634eda77..0026fb6c984b 100644
--- a/arch/arm/mach-tegra/powergate.c
+++ b/arch/arm/mach-tegra/powergate.c
@@ -41,6 +41,8 @@
41 41
42#define PWRGATE_STATUS 0x38 42#define PWRGATE_STATUS 0x38
43 43
44#define GPU_RG_CNTRL 0x2d4
45
44static int tegra_num_powerdomains; 46static int tegra_num_powerdomains;
45static int tegra_num_cpu_domains; 47static int tegra_num_cpu_domains;
46static const u8 *tegra_cpu_domains; 48static const u8 *tegra_cpu_domains;
@@ -137,6 +139,17 @@ int tegra_powergate_remove_clamping(int id)
137 return -EINVAL; 139 return -EINVAL;
138 140
139 /* 141 /*
142 * The Tegra124 GPU has a separate register (with different semantics)
143 * to remove clamps.
144 */
145 if (tegra_chip_id == TEGRA124) {
146 if (id == TEGRA_POWERGATE_3D) {
147 pmc_write(0, GPU_RG_CNTRL);
148 return 0;
149 }
150 }
151
152 /*
140 * Tegra 2 has a bug where PCIE and VDE clamping masks are 153 * Tegra 2 has a bug where PCIE and VDE clamping masks are
141 * swapped relatively to the partition ids 154 * swapped relatively to the partition ids
142 */ 155 */