From 738949c0fd8c1c0a13f814f87d3c65753936d0c1 Mon Sep 17 00:00:00 2001 From: Bibek Basu Date: Mon, 27 Oct 2014 14:04:43 +0530 Subject: [PATCH] arm: tegra12: enable gpu edp capping for jetson Enable GPU edp capping for jetson-tk1.Also update the max_cpu_current and max_gpu_current for PM375 Bug 1563635 Change-Id: I165440959ba0f23d102f1d89a6c6e9191329305d Signed-off-by: Bibek Basu Reviewed-on: http://git-master/r/590332 GVS: Gerrit_Virtual_Submit Reviewed-by: Venkat Moganty Reviewed-by: Matthew Pedro --- arch/arm/configs/tegra12_defconfig | 1 + arch/arm/mach-tegra/board-ardbeg-power.c | 4 ++++ arch/arm/mach-tegra/board-ardbeg.c | 2 +- arch/arm/mach-tegra/edp.c | 7 +++++-- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/arch/arm/configs/tegra12_defconfig b/arch/arm/configs/tegra12_defconfig index f4432b768db..88f370f39cf 100644 --- a/arch/arm/configs/tegra12_defconfig +++ b/arch/arm/configs/tegra12_defconfig @@ -33,6 +33,7 @@ CONFIG_TEGRA_EMC_SCALING_ENABLE=y CONFIG_TEGRA_CLOCK_DEBUG_WRITE=y CONFIG_TEGRA_PREINIT_CLOCKS=y CONFIG_TEGRA_EDP_LIMITS=y +CONFIG_TEGRA_GPU_EDP=y CONFIG_TEGRA_GADGET_BOOST_CPU_FREQ=1400 CONFIG_TEGRA_PREPOWER_WIFI=y CONFIG_TEGRA_DYNAMIC_PWRDET=y diff --git a/arch/arm/mach-tegra/board-ardbeg-power.c b/arch/arm/mach-tegra/board-ardbeg-power.c index df6a9aeed81..684a950704d 100644 --- a/arch/arm/mach-tegra/board-ardbeg-power.c +++ b/arch/arm/mach-tegra/board-ardbeg-power.c @@ -391,6 +391,8 @@ int __init ardbeg_edp_init(void) regulator_mA = 16800; else if (pmu_board_info.board_id == BOARD_PM374) regulator_mA = 32000; + else if (pmu_board_info.board_id == BOARD_PM375) + regulator_mA = 11000; else regulator_mA = 14000; } @@ -403,6 +405,8 @@ int __init ardbeg_edp_init(void) regulator_mA = 11200; else if (pmu_board_info.board_id == BOARD_PM374) regulator_mA = 16000; + else if (pmu_board_info.board_id == BOARD_PM375) + regulator_mA = 10500; else regulator_mA = 12000; diff --git a/arch/arm/mach-tegra/board-ardbeg.c b/arch/arm/mach-tegra/board-ardbeg.c index 9b997ddde9f..9d1da7f4877 100644 --- a/arch/arm/mach-tegra/board-ardbeg.c +++ b/arch/arm/mach-tegra/board-ardbeg.c @@ -1290,7 +1290,6 @@ static void __init edp_init(void) break; case BOARD_PM358: case BOARD_PM359: - case BOARD_PM375: case BOARD_PM377: laguna_edp_init(); break; @@ -1298,6 +1297,7 @@ static void __init edp_init(void) case BOARD_E2548: loki_edp_init(); break; + case BOARD_PM375: default: ardbeg_edp_init(); break; diff --git a/arch/arm/mach-tegra/edp.c b/arch/arm/mach-tegra/edp.c index e7d9744a1a9..df8c8dc8b40 100644 --- a/arch/arm/mach-tegra/edp.c +++ b/arch/arm/mach-tegra/edp.c @@ -113,7 +113,7 @@ static struct tegra_edp_gpu_limits gpu_edp_default_limits[] = { }; static const int gpu_temperatures[] = { /* degree celcius (C) */ - 20, 50, 70, 75, 80, 85, 90, 95, 100, 105, + 0, 20, 50, 70, 75, 80, 85, 90, 95, 100, 105, }; #endif @@ -866,7 +866,10 @@ static int init_gpu_edp_limits_calculated(void) for (i = 0; i < ARRAY_SIZE(gpu_temperatures); i++) { gpu_edp_calculated_limits[i].temperature = gpu_temperatures[i]; - limit = gpu_edp_calculate_maxf(params, + if (gpu_temperatures[i] == 0 && tegra_gpu_speedo_id() == 5) + limit = 708000; + else + limit = gpu_edp_calculate_maxf(params, gpu_temperatures[i], gpu_iddq_ma); if (limit == -EINVAL) { -- 2.39.2