|
@@ -321,6 +321,23 @@ static int cpufreq_parse_governor (char *str_governor, unsigned int *policy,
|
|
|
|
|
|
t = __find_governor(str_governor);
|
|
|
|
|
|
+ if (t == NULL) {
|
|
|
+ char *name = kasprintf(GFP_KERNEL, "cpufreq_%s", str_governor);
|
|
|
+
|
|
|
+ if (name) {
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ mutex_unlock(&cpufreq_governor_mutex);
|
|
|
+ ret = request_module(name);
|
|
|
+ mutex_lock(&cpufreq_governor_mutex);
|
|
|
+
|
|
|
+ if (ret == 0)
|
|
|
+ t = __find_governor(str_governor);
|
|
|
+ }
|
|
|
+
|
|
|
+ kfree(name);
|
|
|
+ }
|
|
|
+
|
|
|
if (t != NULL) {
|
|
|
*governor = t;
|
|
|
err = 0;
|