cpufreq:LAB: Change method of boost state preserving
authorLukasz Majewski <l.majewski@samsung.com>
Wed, 2 Apr 2014 10:31:57 +0000 (12:31 +0200)
committerChanho Park <chanho61.park@samsung.com>
Tue, 18 Nov 2014 02:47:26 +0000 (11:47 +0900)
It is not necessary to change the boost state when LAB governor is entered,
since LAB will change it according to its own politics. Only enter state
is preserved.

When leaving the LAB, only when required, work is scheduled to restore boost
initial state.

Change-Id: I6323f3c0011fe54a33d70c9ad0f9da5360b4a735
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
drivers/cpufreq/cpufreq_lab.c

index 1738a7a..17f9701 100644 (file)
@@ -388,8 +388,6 @@ static int lb_init(struct dbs_data *dbs_data)
                goto err_idle_hist;
 
        boost_init_state = cpufreq_boost_enabled();
-       if (boost_init_state)
-               cpufreq_boost_trigger_state(false);
 
        od_init(dbs_data);
 
@@ -412,10 +410,13 @@ void lb_exit(struct dbs_data *dbs_data)
        kfree(lb_ctrl_table);
        lb_ctrl_table = NULL;
 
-       cpufreq_boost_trigger_state(boost_init_state);
-
        kfree(idle_avg);
        kfree(idle_hist);
+
+       if (cpufreq_boost_enabled() != boost_init_state) {
+               lb_boost_data.state = boost_init_state;
+               schedule_work(&lb_boost_data.work);
+       }
 }
 
 define_get_cpu_dbs_routines(od_cpu_dbs_info);