cpuquiet: Add notifiers for the runnables governor

The governor stops sampling whenever the device is busy and starts its
sampling loop when the device is free.

Change-Id: Ifdae4a84e56c2734be48e49f6112b537602a02da
Signed-off-by: Sai Charan Gurrappadi <sgurrappadi@nvidia.com>
Reviewed-on: http://git-master/r/124680
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
This commit is contained in:
Sai Charan Gurrappadi
2012-07-25 08:41:53 -07:00
committed by Huang, Tao
parent 79d853800e
commit 14d64ba7d1

View File

@@ -186,6 +186,22 @@ static int runnables_sysfs(void)
return err;
}
static void runnables_device_busy(void)
{
if (runnables_state != DISABLED) {
runnables_state = DISABLED;
cancel_delayed_work_sync(&runnables_work);
}
}
static void runnables_device_free(void)
{
if (runnables_state == DISABLED) {
runnables_state = IDLE;
runnables_work_func(NULL);
}
}
static void runnables_stop(void)
{
runnables_state = DISABLED;
@@ -228,6 +244,8 @@ static int runnables_start(void)
struct cpuquiet_governor runnables_governor = {
.name = "runnable",
.start = runnables_start,
.device_free_notification = runnables_device_free,
.device_busy_notification = runnables_device_busy,
.stop = runnables_stop,
.owner = THIS_MODULE,
};