OSDN Git Service

tools/power/x86/intel-speed-select: Change the order for clos disable
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Tue, 14 Jan 2020 19:22:16 +0000 (11:22 -0800)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 20 Jan 2020 09:39:31 +0000 (11:39 +0200)
In turbo-freq or base-freq auto mode, for disable, first disable the feature and
then disable clos.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
tools/power/x86/intel-speed-select/isst-config.c

index e22a694..84baba3 100644 (file)
@@ -1384,14 +1384,10 @@ static void set_pbf_for_cpu(int cpu, void *arg1, void *arg2, void *arg3,
                goto disp_result;
        }
 
-       if (auto_mode) {
-               if (status) {
-                       ret = set_pbf_core_power(cpu);
-                       if (ret)
-                               goto disp_result;
-               } else {
-                       isst_pm_qos_config(cpu, 0, 0);
-               }
+       if (auto_mode && status) {
+               ret = set_pbf_core_power(cpu);
+               if (ret)
+                       goto disp_result;
        }
 
        ret = isst_set_pbf_fact_status(cpu, 1, status);
@@ -1408,6 +1404,9 @@ static void set_pbf_for_cpu(int cpu, void *arg1, void *arg2, void *arg3,
                }
        }
 
+       if (auto_mode && !status)
+               isst_pm_qos_config(cpu, 0, 0);
+
 disp_result:
        if (status)
                isst_display_result(cpu, outf, "base-freq", "enable",
@@ -1496,14 +1495,10 @@ static void set_fact_for_cpu(int cpu, void *arg1, void *arg2, void *arg3,
        int ret;
        int status = *(int *)arg4;
 
-       if (auto_mode) {
-               if (status) {
-                       ret = isst_pm_qos_config(cpu, 1, 1);
-                       if (ret)
-                               goto disp_results;
-               } else {
-                       isst_pm_qos_config(cpu, 0, 0);
-               }
+       if (auto_mode && status) {
+               ret = isst_pm_qos_config(cpu, 1, 1);
+               if (ret)
+                       goto disp_results;
        }
 
        ret = isst_set_pbf_fact_status(cpu, 0, status);
@@ -1524,6 +1519,9 @@ static void set_fact_for_cpu(int cpu, void *arg1, void *arg2, void *arg3,
                        ret = isst_set_trl(cpu, fact_trl);
                if (ret && auto_mode)
                        isst_pm_qos_config(cpu, 0, 0);
+       } else {
+               if (auto_mode)
+                       isst_pm_qos_config(cpu, 0, 0);
        }
 
 disp_results: