mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-10 07:50:04 +00:00
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);
|
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 *
|
* NOTIFIER LISTS INTERFACE *
|
||||||
*********************************************************************/
|
*********************************************************************/
|
||||||
|
@ -219,6 +219,7 @@ __ATTR(_name, 0644, show_##_name, store_##_name)
|
|||||||
struct cpufreq_driver {
|
struct cpufreq_driver {
|
||||||
char name[CPUFREQ_NAME_LEN];
|
char name[CPUFREQ_NAME_LEN];
|
||||||
u8 flags;
|
u8 flags;
|
||||||
|
void *driver_data;
|
||||||
|
|
||||||
/* needed by all drivers */
|
/* needed by all drivers */
|
||||||
int (*init) (struct cpufreq_policy *policy);
|
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);
|
int cpufreq_unregister_driver(struct cpufreq_driver *driver_data);
|
||||||
|
|
||||||
const char *cpufreq_get_current_driver(void);
|
const char *cpufreq_get_current_driver(void);
|
||||||
|
void *cpufreq_get_driver_data(void);
|
||||||
|
|
||||||
static inline void cpufreq_verify_within_limits(struct cpufreq_policy *policy,
|
static inline void cpufreq_verify_within_limits(struct cpufreq_policy *policy,
|
||||||
unsigned int min, unsigned int max)
|
unsigned int min, unsigned int max)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user