[PATCH 08/12] OMAP3+: VP: move voltage scale function pointer into struct voltagedomain
Kevin Hilman
khilman at ti.com
Mon Aug 29 13:58:08 EDT 2011
Function pointer used for actual voltage scaling (e.g. VP force update
or VC bypass) is moved from omap_vdd_info into struct voltagedomain,
resulting in renames s/vdd->volt_scale/voltdm->scale/
No functional changes.
Signed-off-by: Kevin Hilman <khilman at ti.com>
---
arch/arm/mach-omap2/voltage.c | 24 +++++++-----------------
arch/arm/mach-omap2/voltage.h | 8 ++++----
2 files changed, 11 insertions(+), 21 deletions(-)
diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-omap2/voltage.c
index 4a15668..32f0873 100644
--- a/arch/arm/mach-omap2/voltage.c
+++ b/arch/arm/mach-omap2/voltage.c
@@ -45,10 +45,8 @@ static LIST_HEAD(voltdm_list);
static int __init _config_common_vdd_data(struct voltagedomain *voltdm)
{
- struct omap_vdd_info *vdd = voltdm->vdd;
-
/* Generic voltage parameters */
- vdd->volt_scale = omap_vp_forceupdate_scale;
+ voltdm->scale = omap_vp_forceupdate_scale;
return 0;
}
@@ -107,22 +105,18 @@ unsigned long omap_voltage_get_nom_volt(struct voltagedomain *voltdm)
int omap_voltage_scale_vdd(struct voltagedomain *voltdm,
unsigned long target_volt)
{
- struct omap_vdd_info *vdd;
-
if (!voltdm || IS_ERR(voltdm)) {
pr_warning("%s: VDD specified does not exist!\n", __func__);
return -EINVAL;
}
- vdd = voltdm->vdd;
-
- if (!vdd->volt_scale) {
+ if (!voltdm->scale) {
pr_err("%s: No voltage scale API registered for vdd_%s\n",
__func__, voltdm->name);
return -ENODATA;
}
- return vdd->volt_scale(voltdm, target_volt);
+ return voltdm->scale(voltdm, target_volt);
}
/**
@@ -258,23 +252,19 @@ int omap_voltage_register_pmic(struct voltagedomain *voltdm,
* defined in voltage.h
*/
void omap_change_voltscale_method(struct voltagedomain *voltdm,
- int voltscale_method)
+ int voltscale_method)
{
- struct omap_vdd_info *vdd;
-
if (!voltdm || IS_ERR(voltdm)) {
pr_warning("%s: VDD specified does not exist!\n", __func__);
return;
}
- vdd = voltdm->vdd;
-
switch (voltscale_method) {
case VOLTSCALE_VPFORCEUPDATE:
- vdd->volt_scale = omap_vp_forceupdate_scale;
+ voltdm->scale = omap_vp_forceupdate_scale;
return;
case VOLTSCALE_VCBYPASS:
- vdd->volt_scale = omap_vc_bypass_scale;
+ voltdm->scale = omap_vc_bypass_scale;
return;
default:
pr_warning("%s: Trying to change the method of voltage scaling"
@@ -315,7 +305,7 @@ int __init omap_voltage_late_init(void)
clk_put(sys_ck);
if (voltdm->vc) {
- voltdm->vdd->volt_scale = omap_vc_bypass_scale;
+ voltdm->scale = omap_vc_bypass_scale;
omap_vc_init_channel(voltdm);
}
diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-omap2/voltage.h
index 5235eec..d2a0c24 100644
--- a/arch/arm/mach-omap2/voltage.h
+++ b/arch/arm/mach-omap2/voltage.h
@@ -60,6 +60,7 @@ struct omap_vfsm_instance {
* @pwrdm_node: list_head linking all powerdomains in this voltagedomain
* @vdd: to be removed
* @pwrdms: powerdomains in this voltagedomain
+ * @scale: function used to scale the voltage of the voltagedomain
*/
struct voltagedomain {
char *name;
@@ -81,6 +82,9 @@ struct voltagedomain {
u32 rate;
} sys_clk;
+ int (*scale) (struct voltagedomain *voltdm,
+ unsigned long target_volt);
+
struct omap_vdd_info *vdd;
};
@@ -141,14 +145,10 @@ struct omap_voltdm_pmic {
* @volt_data : voltage table having the distinct voltages supported
* by the domain and other associated per voltage data.
* @curr_volt : current voltage for this vdd.
- * @volt_scale : API to scale the voltage of the vdd.
*/
struct omap_vdd_info {
struct omap_volt_data *volt_data;
u32 curr_volt;
-
- int (*volt_scale) (struct voltagedomain *voltdm,
- unsigned long target_volt);
};
int omap_voltage_scale_vdd(struct voltagedomain *voltdm,
--
1.7.6
More information about the linux-arm-kernel
mailing list