Added generic busy/free notifiers that the driver can invoke to let the
governor know that it cannot process further core online/offline
requests (invoked in our case whenever we switch to the LP cluster).
Change-Id: I5e3f7f28f38806a7f87050e8d0c8d2f2cf7521aa
Signed-off-by: Sai Charan Gurrappadi <sgurrappadi@nvidia.com>
Reviewed-on: http://git-master/r/114807
Reviewed-by: Lokesh Pathak <lpathak@nvidia.com>
Tested-by: Lokesh Pathak <lpathak@nvidia.com>
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();
+}
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;
};
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;