summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra
diff options
context:
space:
mode:
authorAlex Frid <afrid@nvidia.com>2013-09-27 19:17:32 -0700
committerAjay Nandakumar <anandakumarm@nvidia.com>2013-10-03 19:17:52 +0530
commit12f9c0dfbe01115435a26b4b9ac387f0852218fb (patch)
tree488e9095a1c6244de0a6441778ecc52a14d8cc99 /arch/arm/mach-tegra
parent84827d68021e3ff1c0018dde94cc65581d486806 (diff)
ARM: tegra: dvfs: Add GPU scaling trip-points interfaces
Added common interfaces to set GPU scaling trip-points. Bug 1273253 Change-Id: I25f5870c00b1e3b8fb4fdcd685900512954a9125 Signed-off-by: Alex Frid <afrid@nvidia.com> Reviewed-on: http://git-master/r/280079 Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com> (cherry picked from commit 840ed28c2d5f35b3c6c8f8ce9c6a044a4bc57705) Signed-off-by: Ajay Nandakumar <anandakumarm@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra')
-rw-r--r--arch/arm/mach-tegra/board-common.c5
-rw-r--r--arch/arm/mach-tegra/board-common.h1
-rw-r--r--arch/arm/mach-tegra/dvfs.c7
-rw-r--r--arch/arm/mach-tegra/dvfs.h1
4 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/board-common.c b/arch/arm/mach-tegra/board-common.c
index 22468de911da..df2bb69a007e 100644
--- a/arch/arm/mach-tegra/board-common.c
+++ b/arch/arm/mach-tegra/board-common.c
@@ -179,3 +179,8 @@ void tegra_add_tj_trips(struct thermal_trip_info *trips, int *num_trips)
tegra_add_trip_points(trips, num_trips, tegra_dvfs_get_cpu_vmax_cdev());
tegra_add_trip_points(trips, num_trips, tegra_core_edp_get_cdev());
}
+
+void tegra_add_tgpu_trips(struct thermal_trip_info *trips, int *num_trips)
+{
+ tegra_add_trip_points(trips, num_trips, tegra_dvfs_get_gpu_vts_cdev());
+}
diff --git a/arch/arm/mach-tegra/board-common.h b/arch/arm/mach-tegra/board-common.h
index 11f1622af67f..4f4810a5c397 100644
--- a/arch/arm/mach-tegra/board-common.h
+++ b/arch/arm/mach-tegra/board-common.h
@@ -29,4 +29,5 @@ int uart_console_debug_init(int defaul_debug_port);
int tegra_vibrator_init(void);
void tegra_add_cdev_trips(struct thermal_trip_info *trips, int *num_trips);
void tegra_add_tj_trips(struct thermal_trip_info *trips, int *num_trips);
+void tegra_add_tgpu_trips(struct thermal_trip_info *trips, int *num_trips);
#endif
diff --git a/arch/arm/mach-tegra/dvfs.c b/arch/arm/mach-tegra/dvfs.c
index 7a5e81a43d01..65967014231f 100644
--- a/arch/arm/mach-tegra/dvfs.c
+++ b/arch/arm/mach-tegra/dvfs.c
@@ -1275,6 +1275,13 @@ struct tegra_cooling_device *tegra_dvfs_get_gpu_vmin_cdev(void)
return NULL;
}
+struct tegra_cooling_device *tegra_dvfs_get_gpu_vts_cdev(void)
+{
+ if (tegra_gpu_rail)
+ return tegra_gpu_rail->vts_cdev;
+ return NULL;
+}
+
static void make_safe_thermal_dvfs_one(struct dvfs *d,
struct tegra_cooling_device *cdev)
{
diff --git a/arch/arm/mach-tegra/dvfs.h b/arch/arm/mach-tegra/dvfs.h
index 8698781dbace..52eda0acbaa5 100644
--- a/arch/arm/mach-tegra/dvfs.h
+++ b/arch/arm/mach-tegra/dvfs.h
@@ -247,6 +247,7 @@ struct tegra_cooling_device *tegra_dvfs_get_cpu_vmax_cdev(void);
struct tegra_cooling_device *tegra_dvfs_get_cpu_vmin_cdev(void);
struct tegra_cooling_device *tegra_dvfs_get_core_vmin_cdev(void);
struct tegra_cooling_device *tegra_dvfs_get_gpu_vmin_cdev(void);
+struct tegra_cooling_device *tegra_dvfs_get_gpu_vts_cdev(void);
void tegra_dvfs_rail_init_vmin_thermal_profile(
int *therm_trips_table, int *therm_floors_table,
struct dvfs_rail *rail, struct dvfs_dfll_data *d);