aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDaniel Hillenbrand <codeworkx@cyanogenmod.org>2013-08-17 00:37:40 +0000
committerGerrit Code Review <gerrit@cyanogenmod.org>2013-08-17 00:37:40 +0000
commit179c1cec77b57fde6a17361665386584629d6353 (patch)
tree7cc37b92f1bbf2795dce12d89591ba46d7df751a /drivers
parent008d6925cd8509bcf525950f66d9c9f913a207ab (diff)
parent81acf891b5786d5b392bc0af2a81f193cb90bfc4 (diff)
downloadkernel_samsung_smdk4412-179c1cec77b57fde6a17361665386584629d6353.zip
kernel_samsung_smdk4412-179c1cec77b57fde6a17361665386584629d6353.tar.gz
kernel_samsung_smdk4412-179c1cec77b57fde6a17361665386584629d6353.tar.bz2
Merge "mali: pick the right GPU voltage table for 1400MHz devices, restore thresholds" into cm-10.2
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/video/samsung/mali/platform/orion-m400/mali_platform_dvfs.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/media/video/samsung/mali/platform/orion-m400/mali_platform_dvfs.c b/drivers/media/video/samsung/mali/platform/orion-m400/mali_platform_dvfs.c
index e0199b2..4efa759 100644
--- a/drivers/media/video/samsung/mali/platform/orion-m400/mali_platform_dvfs.c
+++ b/drivers/media/video/samsung/mali/platform/orion-m400/mali_platform_dvfs.c
@@ -67,8 +67,8 @@ mali_dvfs_staycount_table mali_dvfs_staycount[MALI_DVFS_STEPS]={
/*dvfs threshold*/
mali_dvfs_threshold_table mali_dvfs_threshold[MALI_DVFS_STEPS]={
/*step 0*/{((int)((255*0)/100)) ,((int)((255*85)/100))},
- /*step 1*/{((int)((255*80)/100)) ,((int)((255*90)/100))},
- /*step 2*/{((int)((255*80)/100)) ,((int)((255*100)/100))} };
+ /*step 1*/{((int)((255*75)/100)) ,((int)((255*85)/100))},
+ /*step 2*/{((int)((255*75)/100)) ,((int)((255*100)/100))} };
/*dvfs status*/
mali_dvfs_currentstatus maliDvfsStatus;
@@ -88,7 +88,6 @@ mali_dvfs_table mali_dvfs[MALI_DVFS_STEPS]={
#define ASV_8_LEVEL 8
#define ASV_5_LEVEL 5
-#define ASV_LEVEL_SUPPORT 0
static unsigned int asv_3d_volt_5_table[ASV_5_LEVEL][MALI_DVFS_STEPS] = {
/* L3 (100/134MHz) L2(160MHz), L1(267MHz) */
@@ -273,16 +272,18 @@ static unsigned int decideNextStatus(unsigned int utilization)
static mali_bool mali_dvfs_table_update(void)
{
unsigned int exynos_result_of_asv_group;
+ unsigned int target_asv;
unsigned int i;
exynos_result_of_asv_group = exynos_result_of_asv & 0xf;
- MALI_PRINT(("exynos_result_of_asv_group = 0x%x\n", exynos_result_of_asv_group));
+ target_asv = exynos_result_of_asv >> 28;
+ MALI_PRINT(("exynos_result_of_asv_group = 0x%x, target_asv = 0x%x\n", exynos_result_of_asv_group, target_asv));
- if (ASV_LEVEL_SUPPORT) { //asv level information will be added.
+ if (target_asv == 0x8) { //SUPPORT_1400MHZ
for (i = 0; i < MALI_DVFS_STEPS; i++) {
mali_dvfs[i].vol = asv_3d_volt_5_table[exynos_result_of_asv_group][i];
MALI_PRINT(("mali_dvfs[%d].vol = %d\n", i, mali_dvfs[i].vol));
}
- } else {
+ } else if (target_asv == 0x4){ //SUPPORT_1200MHZ
for (i = 0; i < MALI_DVFS_STEPS; i++) {
mali_dvfs[i].vol = asv_3d_volt_8_table[exynos_result_of_asv_group][i];
MALI_PRINT(("mali_dvfs[%d].vol = %d\n", i, mali_dvfs[i].vol));