diff options
-rw-r--r-- | drivers/cpuquiet/governor.c | 14 | ||||
-rw-r--r-- | include/linux/cpuquiet.h | 4 |
2 files changed, 18 insertions, 0 deletions
diff --git a/drivers/cpuquiet/governor.c b/drivers/cpuquiet/governor.c index 7895fccc7f42..176ba3bd705f 100644 --- a/drivers/cpuquiet/governor.c +++ b/drivers/cpuquiet/governor.c @@ -100,3 +100,17 @@ void cpuquiet_unregister_governor(struct cpuquiet_governor *gov) list_del(&gov->governor_list); mutex_unlock(&cpuquiet_lock); } + +void cpuquiet_device_busy(void) +{ + if (cpuquiet_curr_governor && + cpuquiet_curr_governor->device_busy_notification) + cpuquiet_curr_governor->device_busy_notification(); +} + +void cpuquiet_device_free(void) +{ + if (cpuquiet_curr_governor && + cpuquiet_curr_governor->device_free_notification) + cpuquiet_curr_governor->device_free_notification(); +} diff --git a/include/linux/cpuquiet.h b/include/linux/cpuquiet.h index fe5a03727739..5558c015bb50 100644 --- a/include/linux/cpuquiet.h +++ b/include/linux/cpuquiet.h @@ -30,6 +30,8 @@ struct cpuquiet_governor { int (*start) (void); void (*stop) (void); int (*store_active) (unsigned int cpu, bool active); + void (*device_free_notification) (void); + void (*device_busy_notification) (void); struct module *owner; }; @@ -47,6 +49,8 @@ extern int cpuquiet_register_driver(struct cpuquiet_driver *drv); extern void cpuquiet_unregister_driver(struct cpuquiet_driver *drv); extern int cpuquiet_add_group(struct attribute_group *attrs); extern void cpuquiet_remove_group(struct attribute_group *attrs); +extern void cpuquiet_device_busy(void); +extern void cpuquiet_device_free(void); int cpuquiet_kobject_init(struct kobject *kobj, struct kobj_type *type, char *name); extern unsigned int nr_cluster_ids; |