Release 4.10 include/linux/pm_opp.h
/*
* Generic OPP Interface
*
* Copyright (C) 2009-2010 Texas Instruments Incorporated.
* Nishanth Menon
* Romit Dasgupta
* Kevin Hilman
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __LINUX_OPP_H__
#define __LINUX_OPP_H__
#include <linux/err.h>
#include <linux/notifier.h>
struct clk;
struct regulator;
struct dev_pm_opp;
struct device;
struct opp_table;
enum dev_pm_opp_event {
OPP_EVENT_ADD, OPP_EVENT_REMOVE, OPP_EVENT_ENABLE, OPP_EVENT_DISABLE,
};
/**
* struct dev_pm_opp_supply - Power supply voltage/current values
* @u_volt: Target voltage in microvolts corresponding to this OPP
* @u_volt_min: Minimum voltage in microvolts corresponding to this OPP
* @u_volt_max: Maximum voltage in microvolts corresponding to this OPP
* @u_amp: Maximum current drawn by the device in microamperes
*
* This structure stores the voltage/current values for a single power supply.
*/
struct dev_pm_opp_supply {
unsigned long u_volt;
unsigned long u_volt_min;
unsigned long u_volt_max;
unsigned long u_amp;
};
/**
* struct dev_pm_opp_info - OPP freq/voltage/current values
* @rate: Target clk rate in hz
* @supplies: Array of voltage/current values for all power supplies
*
* This structure stores the freq/voltage/current values for a single OPP.
*/
struct dev_pm_opp_info {
unsigned long rate;
struct dev_pm_opp_supply *supplies;
};
/**
* struct dev_pm_set_opp_data - Set OPP data
* @old_opp: Old OPP info
* @new_opp: New OPP info
* @regulators: Array of regulator pointers
* @regulator_count: Number of regulators
* @clk: Pointer to clk
* @dev: Pointer to the struct device
*
* This structure contains all information required for setting an OPP.
*/
struct dev_pm_set_opp_data {
struct dev_pm_opp_info old_opp;
struct dev_pm_opp_info new_opp;
struct regulator **regulators;
unsigned int regulator_count;
struct clk *clk;
struct device *dev;
};
#if defined(CONFIG_PM_OPP)
unsigned long dev_pm_opp_get_voltage(struct dev_pm_opp *opp);
unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp);
bool dev_pm_opp_is_turbo(struct dev_pm_opp *opp);
int dev_pm_opp_get_opp_count(struct device *dev);
unsigned long dev_pm_opp_get_max_clock_latency(struct device *dev);
unsigned long dev_pm_opp_get_max_volt_latency(struct device *dev);
unsigned long dev_pm_opp_get_max_transition_latency(struct device *dev);
struct dev_pm_opp *dev_pm_opp_get_suspend_opp(struct device *dev);
struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device *dev,
unsigned long freq,
bool available);
struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev,
unsigned long *freq);
struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device *dev,
unsigned long *freq);
int dev_pm_opp_add(struct device *dev, unsigned long freq,
unsigned long u_volt);
void dev_pm_opp_remove(struct device *dev, unsigned long freq);
int dev_pm_opp_enable(struct device *dev, unsigned long freq);
int dev_pm_opp_disable(struct device *dev, unsigned long freq);
struct srcu_notifier_head *dev_pm_opp_get_notifier(struct device *dev);
int dev_pm_opp_set_supported_hw(struct device *dev, const u32 *versions,
unsigned int count);
void dev_pm_opp_put_supported_hw(struct device *dev);
int dev_pm_opp_set_prop_name(struct device *dev, const char *name);
void dev_pm_opp_put_prop_name(struct device *dev);
struct opp_table *dev_pm_opp_set_regulators(struct device *dev, const char * const names[], unsigned int count);
void dev_pm_opp_put_regulators(struct opp_table *opp_table);
int dev_pm_opp_register_set_opp_helper(struct device *dev, int (*set_opp)(struct dev_pm_set_opp_data *data));
void dev_pm_opp_register_put_opp_helper(struct device *dev);
int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq);
int dev_pm_opp_set_sharing_cpus(struct device *cpu_dev, const struct cpumask *cpumask);
int dev_pm_opp_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask);
void dev_pm_opp_remove_table(struct device *dev);
void dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask);
#else
static inline unsigned long dev_pm_opp_get_voltage(struct dev_pm_opp *opp)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
nishanth menon | nishanth menon | 16 | 100.00% | 3 | 100.00% |
| Total | 16 | 100.00% | 3 | 100.00% |
static inline unsigned long dev_pm_opp_get_freq(struct dev_pm_opp *opp)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
nishanth menon | nishanth menon | 16 | 100.00% | 3 | 100.00% |
| Total | 16 | 100.00% | 3 | 100.00% |
static inline bool dev_pm_opp_is_turbo(struct dev_pm_opp *opp)
{
return false;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
bartlomiej zolnierkiewicz | bartlomiej zolnierkiewicz | 15 | 100.00% | 1 | 100.00% |
| Total | 15 | 100.00% | 1 | 100.00% |
static inline int dev_pm_opp_get_opp_count(struct device *dev)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
nishanth menon | nishanth menon | 15 | 100.00% | 2 | 100.00% |
| Total | 15 | 100.00% | 2 | 100.00% |
static inline unsigned long dev_pm_opp_get_max_clock_latency(struct device *dev)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 16 | 100.00% | 1 | 100.00% |
| Total | 16 | 100.00% | 1 | 100.00% |
static inline unsigned long dev_pm_opp_get_max_volt_latency(struct device *dev)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 16 | 100.00% | 1 | 100.00% |
| Total | 16 | 100.00% | 1 | 100.00% |
static inline unsigned long dev_pm_opp_get_max_transition_latency(struct device *dev)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 16 | 100.00% | 1 | 100.00% |
| Total | 16 | 100.00% | 1 | 100.00% |
static inline struct dev_pm_opp *dev_pm_opp_get_suspend_opp(struct device *dev)
{
return NULL;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
bartlomiej zolnierkiewicz | bartlomiej zolnierkiewicz | 17 | 100.00% | 1 | 100.00% |
| Total | 17 | 100.00% | 1 | 100.00% |
static inline struct dev_pm_opp *dev_pm_opp_find_freq_exact(struct device *dev,
unsigned long freq, bool available)
{
return ERR_PTR(-ENOTSUPP);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
nishanth menon | nishanth menon | 27 | 96.43% | 3 | 75.00% |
viresh kumar | viresh kumar | 1 | 3.57% | 1 | 25.00% |
| Total | 28 | 100.00% | 4 | 100.00% |
static inline struct dev_pm_opp *dev_pm_opp_find_freq_floor(struct device *dev,
unsigned long *freq)
{
return ERR_PTR(-ENOTSUPP);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
nishanth menon | nishanth menon | 25 | 96.15% | 3 | 75.00% |
viresh kumar | viresh kumar | 1 | 3.85% | 1 | 25.00% |
| Total | 26 | 100.00% | 4 | 100.00% |
static inline struct dev_pm_opp *dev_pm_opp_find_freq_ceil(struct device *dev,
unsigned long *freq)
{
return ERR_PTR(-ENOTSUPP);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
nishanth menon | nishanth menon | 25 | 96.15% | 3 | 75.00% |
viresh kumar | viresh kumar | 1 | 3.85% | 1 | 25.00% |
| Total | 26 | 100.00% | 4 | 100.00% |
static inline int dev_pm_opp_add(struct device *dev, unsigned long freq,
unsigned long u_volt)
{
return -ENOTSUPP;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
nishanth menon | nishanth menon | 23 | 95.83% | 2 | 66.67% |
viresh kumar | viresh kumar | 1 | 4.17% | 1 | 33.33% |
| Total | 24 | 100.00% | 3 | 100.00% |
static inline void dev_pm_opp_remove(struct device *dev, unsigned long freq)
{
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 15 | 100.00% | 1 | 100.00% |
| Total | 15 | 100.00% | 1 | 100.00% |
static inline int dev_pm_opp_enable(struct device *dev, unsigned long freq)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
nishanth menon | nishanth menon | 19 | 100.00% | 2 | 100.00% |
| Total | 19 | 100.00% | 2 | 100.00% |
static inline int dev_pm_opp_disable(struct device *dev, unsigned long freq)
{
return 0;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
nishanth menon | nishanth menon | 19 | 100.00% | 2 | 100.00% |
| Total | 19 | 100.00% | 2 | 100.00% |
static inline struct srcu_notifier_head *dev_pm_opp_get_notifier(
struct device *dev)
{
return ERR_PTR(-ENOTSUPP);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
myungjoo ham | myungjoo ham | 17 | 80.95% | 1 | 25.00% |
tony lindgren | tony lindgren | 2 | 9.52% | 1 | 25.00% |
viresh kumar | viresh kumar | 1 | 4.76% | 1 | 25.00% |
nishanth menon | nishanth menon | 1 | 4.76% | 1 | 25.00% |
| Total | 21 | 100.00% | 4 | 100.00% |
static inline int dev_pm_opp_set_supported_hw(struct device *dev,
const u32 *versions,
unsigned int count)
{
return -ENOTSUPP;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 25 | 100.00% | 2 | 100.00% |
| Total | 25 | 100.00% | 2 | 100.00% |
static inline void dev_pm_opp_put_supported_hw(struct device *dev) {}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 11 | 100.00% | 1 | 100.00% |
| Total | 11 | 100.00% | 1 | 100.00% |
static inline int dev_pm_opp_register_set_opp_helper(struct device *dev,
int (*set_opp)(struct dev_pm_set_opp_data *data))
{
return -ENOTSUPP;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 28 | 100.00% | 1 | 100.00% |
| Total | 28 | 100.00% | 1 | 100.00% |
static inline void dev_pm_opp_register_put_opp_helper(struct device *dev) {}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 11 | 100.00% | 1 | 100.00% |
| Total | 11 | 100.00% | 1 | 100.00% |
static inline int dev_pm_opp_set_prop_name(struct device *dev, const char *name)
{
return -ENOTSUPP;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 21 | 100.00% | 2 | 100.00% |
| Total | 21 | 100.00% | 2 | 100.00% |
static inline void dev_pm_opp_put_prop_name(struct device *dev) {}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 11 | 100.00% | 1 | 100.00% |
| Total | 11 | 100.00% | 1 | 100.00% |
static inline struct opp_table *dev_pm_opp_set_regulators(struct device *dev, const char * const names[], unsigned int count)
{
return ERR_PTR(-ENOTSUPP);
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 26 | 81.25% | 3 | 75.00% |
stephen boyd | stephen boyd | 6 | 18.75% | 1 | 25.00% |
| Total | 32 | 100.00% | 4 | 100.00% |
static inline void dev_pm_opp_put_regulators(struct opp_table *opp_table) {}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 9 | 81.82% | 2 | 66.67% |
stephen boyd | stephen boyd | 2 | 18.18% | 1 | 33.33% |
| Total | 11 | 100.00% | 3 | 100.00% |
static inline int dev_pm_opp_set_rate(struct device *dev, unsigned long target_freq)
{
return -ENOTSUPP;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 20 | 100.00% | 2 | 100.00% |
| Total | 20 | 100.00% | 2 | 100.00% |
static inline int dev_pm_opp_set_sharing_cpus(struct device *cpu_dev, const struct cpumask *cpumask)
{
return -ENOTSUPP;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 19 | 86.36% | 3 | 75.00% |
arnd bergmann | arnd bergmann | 3 | 13.64% | 1 | 25.00% |
| Total | 22 | 100.00% | 4 | 100.00% |
static inline int dev_pm_opp_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask)
{
return -EINVAL;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 18 | 85.71% | 1 | 50.00% |
arnd bergmann | arnd bergmann | 3 | 14.29% | 1 | 50.00% |
| Total | 21 | 100.00% | 2 | 100.00% |
static inline void dev_pm_opp_remove_table(struct device *dev)
{
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
sudeep holla | sudeep holla | 11 | 100.00% | 1 | 100.00% |
| Total | 11 | 100.00% | 1 | 100.00% |
static inline void dev_pm_opp_cpumask_remove_table(const struct cpumask *cpumask)
{
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
sudeep holla | sudeep holla | 12 | 100.00% | 1 | 100.00% |
| Total | 12 | 100.00% | 1 | 100.00% |
#endif /* CONFIG_PM_OPP */
#if defined(CONFIG_PM_OPP) && defined(CONFIG_OF)
int dev_pm_opp_of_add_table(struct device *dev);
void dev_pm_opp_of_remove_table(struct device *dev);
int dev_pm_opp_of_cpumask_add_table(const struct cpumask *cpumask);
void dev_pm_opp_of_cpumask_remove_table(const struct cpumask *cpumask);
int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask);
#else
static inline int dev_pm_opp_of_add_table(struct device *dev)
{
return -ENOTSUPP;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
shawn guo | shawn guo | 14 | 87.50% | 1 | 33.33% |
viresh kumar | viresh kumar | 2 | 12.50% | 2 | 66.67% |
| Total | 16 | 100.00% | 3 | 100.00% |
static inline void dev_pm_opp_of_remove_table(struct device *dev)
{
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 11 | 100.00% | 2 | 100.00% |
| Total | 11 | 100.00% | 2 | 100.00% |
static inline int dev_pm_opp_of_cpumask_add_table(const struct cpumask *cpumask)
{
return -ENOTSUPP;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 13 | 76.47% | 3 | 75.00% |
arnd bergmann | arnd bergmann | 4 | 23.53% | 1 | 25.00% |
| Total | 17 | 100.00% | 4 | 100.00% |
static inline void dev_pm_opp_of_cpumask_remove_table(const struct cpumask *cpumask)
{
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 8 | 66.67% | 2 | 66.67% |
arnd bergmann | arnd bergmann | 4 | 33.33% | 1 | 33.33% |
| Total | 12 | 100.00% | 3 | 100.00% |
static inline int dev_pm_opp_of_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask)
{
return -ENOTSUPP;
}
Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 18 | 85.71% | 3 | 75.00% |
arnd bergmann | arnd bergmann | 3 | 14.29% | 1 | 25.00% |
| Total | 21 | 100.00% | 4 | 100.00% |
#endif
#endif /* __LINUX_OPP_H__ */
Overall Contributors
| Person | Tokens | Prop | Commits | CommitProp |
viresh kumar | viresh kumar | 616 | 52.29% | 18 | 60.00% |
nishanth menon | nishanth menon | 342 | 29.03% | 3 | 10.00% |
bartlomiej zolnierkiewicz | bartlomiej zolnierkiewicz | 52 | 4.41% | 2 | 6.67% |
sudeep holla | sudeep holla | 42 | 3.57% | 1 | 3.33% |
myungjoo ham | myungjoo ham | 37 | 3.14% | 1 | 3.33% |
arnd bergmann | arnd bergmann | 34 | 2.89% | 1 | 3.33% |
shawn guo | shawn guo | 33 | 2.80% | 1 | 3.33% |
stephen boyd | stephen boyd | 16 | 1.36% | 1 | 3.33% |
paul gortmaker | paul gortmaker | 3 | 0.25% | 1 | 3.33% |
tony lindgren | tony lindgren | 3 | 0.25% | 1 | 3.33% |
| Total | 1178 | 100.00% | 30 | 100.00% |
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.