cpufreq: allow driver-specific data
This commit extends the cpufreq_driver structure with an additional 'void *driver_data' field that can be filled by the ->probe() function of a cpufreq driver to pass additional custom information to the driver itself. A new function called cpufreq_get_driver_data() is added to allow a cpufreq driver to retrieve those driver data, since they are typically needed from a cpufreq_policy->init() callback, which does not have access to the cpufreq_driver structure. This function call is similar to the existing cpufreq_get_current_driver() function call. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
		
							parent
							
								
									f114040e3e
								
							
						
					
					
						commit
						51315cdfa0
					
				| @ -1731,6 +1731,21 @@ const char *cpufreq_get_current_driver(void) | ||||
| } | ||||
| EXPORT_SYMBOL_GPL(cpufreq_get_current_driver); | ||||
| 
 | ||||
| /**
 | ||||
|  *	cpufreq_get_driver_data - return current driver data | ||||
|  * | ||||
|  *	Return the private data of the currently loaded cpufreq | ||||
|  *	driver, or NULL if no cpufreq driver is loaded. | ||||
|  */ | ||||
| void *cpufreq_get_driver_data(void) | ||||
| { | ||||
| 	if (cpufreq_driver) | ||||
| 		return cpufreq_driver->driver_data; | ||||
| 
 | ||||
| 	return NULL; | ||||
| } | ||||
| EXPORT_SYMBOL_GPL(cpufreq_get_driver_data); | ||||
| 
 | ||||
| /*********************************************************************
 | ||||
|  *                     NOTIFIER LISTS INTERFACE                      * | ||||
|  *********************************************************************/ | ||||
|  | ||||
| @ -219,6 +219,7 @@ __ATTR(_name, 0644, show_##_name, store_##_name) | ||||
| struct cpufreq_driver { | ||||
| 	char			name[CPUFREQ_NAME_LEN]; | ||||
| 	u8			flags; | ||||
| 	void			*driver_data; | ||||
| 
 | ||||
| 	/* needed by all drivers */ | ||||
| 	int	(*init)		(struct cpufreq_policy *policy); | ||||
| @ -312,6 +313,7 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data); | ||||
| int cpufreq_unregister_driver(struct cpufreq_driver *driver_data); | ||||
| 
 | ||||
| const char *cpufreq_get_current_driver(void); | ||||
| void *cpufreq_get_driver_data(void); | ||||
| 
 | ||||
| static inline void cpufreq_verify_within_limits(struct cpufreq_policy *policy, | ||||
| 		unsigned int min, unsigned int max) | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user