diff --git a/drivers/devfreq/devfreq_icc.c b/drivers/devfreq/devfreq_icc.c index 248a0b97c07e..6f72f8b47cea 100644 --- a/drivers/devfreq/devfreq_icc.c +++ b/drivers/devfreq/devfreq_icc.c @@ -220,7 +220,7 @@ int devfreq_add_icc(struct device *dev) } p = &d->dp; - p->polling_ms = 50; + p->polling_ms = 500; p->target = icc_target; p->get_dev_status = icc_get_dev_status; diff --git a/drivers/devfreq/governor_bw_hwmon.c b/drivers/devfreq/governor_bw_hwmon.c index 3f9892cbc5c4..6ef1124ea90c 100644 --- a/drivers/devfreq/governor_bw_hwmon.c +++ b/drivers/devfreq/governor_bw_hwmon.c @@ -616,6 +616,11 @@ static int gov_start(struct devfreq *df) goto err_sysfs; } + mutex_lock(&df->lock); + df->min_freq = df->max_freq; + update_devfreq(df); + mutex_unlock(&df->lock); + return 0; err_sysfs: @@ -934,6 +939,7 @@ out: static struct devfreq_governor devfreq_gov_bw_hwmon = { .name = "bw_hwmon", + .immutable = 1, .get_target_freq = devfreq_bw_hwmon_get_freq, .event_handler = devfreq_bw_hwmon_ev_handler, }; diff --git a/drivers/devfreq/governor_memlat.c b/drivers/devfreq/governor_memlat.c index 94cef86c14b2..0370c6cc98cf 100644 --- a/drivers/devfreq/governor_memlat.c +++ b/drivers/devfreq/governor_memlat.c @@ -194,6 +194,11 @@ static int gov_start(struct devfreq *df) if (ret < 0) goto err_sysfs; + mutex_lock(&df->lock); + df->min_freq = df->max_freq; + update_devfreq(df); + mutex_unlock(&df->lock); + return 0; err_sysfs: @@ -421,12 +426,14 @@ static int devfreq_memlat_ev_handler(struct devfreq *df, static struct devfreq_governor devfreq_gov_memlat = { .name = "mem_latency", + .immutable = 1, .get_target_freq = devfreq_memlat_get_freq, .event_handler = devfreq_memlat_ev_handler, }; static struct devfreq_governor devfreq_gov_compute = { .name = "compute", + .immutable = 1, .get_target_freq = devfreq_memlat_get_freq, .event_handler = devfreq_memlat_ev_handler, };