--- a/arch/arm/mach-msm/devices-8960.c
+++ b/arch/arm/mach-msm/devices-8960.c
@@ -2813,6 +2813,7 @@ static struct kgsl_device_platform_data
},
},
.init_level = 1,
+ .max_level = 0,
.num_levels = 5,
.set_grp_async = NULL,
.idle_timeout = HZ/12,
@@ -2866,6 +2867,7 @@ static struct kgsl_device_platform_data
},
},
.init_level = 0,
+ .max_level = 0,
.num_levels = 3,
.set_grp_async = NULL,
.idle_timeout = HZ/5,
@@ -2919,6 +2921,7 @@ static struct kgsl_device_platform_data
},
},
.init_level = 0,
+ .max_level = 0,
.num_levels = 3,
.set_grp_async = NULL,
.idle_timeout = HZ/5,
--- a/drivers/gpu/msm/kgsl_pwrctrl.c
+++ b/drivers/gpu/msm/kgsl_pwrctrl.c
@@ -494,6 +494,7 @@ int kgsl_pwrctrl_init(struct kgsl_device
}
pwr->num_pwrlevels = pdata->num_levels;
pwr->active_pwrlevel = pdata->init_level;
+ pwr->thermal_pwrlevel = pdata->max_level;
for (i = 0; i < pdata->num_levels; i++) {
pwr->pwrlevels[i].gpu_freq =
(pdata->pwrlevel[i].gpu_freq > 0) ?
--- a/include/linux/msm_kgsl.h
+++ b/include/linux/msm_kgsl.h
@@ -154,6 +154,7 @@ struct kgsl_version {
struct kgsl_device_platform_data {
struct kgsl_pwrlevel pwrlevel[KGSL_MAX_PWRLEVELS];
int init_level;
+ int max_level;
int num_levels;
int (*set_grp_async)(void);
unsigned int idle_timeout;