summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0133-OMAP3-VP-create-VP-helper-function-for-updating-erro.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0133-OMAP3-VP-create-VP-helper-function-for-updating-erro.patch')
-rw-r--r--recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0133-OMAP3-VP-create-VP-helper-function-for-updating-erro.patch107
1 files changed, 0 insertions, 107 deletions
diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0133-OMAP3-VP-create-VP-helper-function-for-updating-erro.patch b/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0133-OMAP3-VP-create-VP-helper-function-for-updating-erro.patch
deleted file mode 100644
index 2c1ce2ce..00000000
--- a/recipes-kernel/linux/linux-3.0/pm-wip/voltdm/0133-OMAP3-VP-create-VP-helper-function-for-updating-erro.patch
+++ /dev/null
@@ -1,107 +0,0 @@
1From 0a3d1d2ea5a37d1afe583dd0aee310a979d0445f Mon Sep 17 00:00:00 2001
2From: Kevin Hilman <khilman@ti.com>
3Date: Tue, 5 Apr 2011 15:15:31 -0700
4Subject: [PATCH 133/149] OMAP3+: VP: create VP helper function for updating error gain
5
6Create new helper function in VP layer for updating VP error gain.
7Currently used during pre-scale for VP force update and VC bypass.
8
9TODO: determine if this can be removed from the pre-scale path and
10moved to VP enable path.
11
12Signed-off-by: Kevin Hilman <khilman@ti.com>
13---
14 arch/arm/mach-omap2/vc.c | 19 ++-----------------
15 arch/arm/mach-omap2/vp.c | 19 +++++++++++++++++++
16 arch/arm/mach-omap2/vp.h | 2 ++
17 3 files changed, 23 insertions(+), 17 deletions(-)
18
19diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
20index f64c826..e855559 100644
21--- a/arch/arm/mach-omap2/vc.c
22+++ b/arch/arm/mach-omap2/vc.c
23@@ -96,9 +96,7 @@ int omap_vc_pre_scale(struct voltagedomain *voltdm,
24 u8 *target_vsel, u8 *current_vsel)
25 {
26 struct omap_vc_channel *vc = voltdm->vc;
27- struct omap_vdd_info *vdd = voltdm->vdd;
28- struct omap_volt_data *volt_data;
29- u32 vc_cmdval, vp_errgain_val;
30+ u32 vc_cmdval;
31
32 /* Check if sufficient pmic info is available for this vdd */
33 if (!voltdm->pmic) {
34@@ -120,11 +118,6 @@ int omap_vc_pre_scale(struct voltagedomain *voltdm,
35 return -EINVAL;
36 }
37
38- /* Get volt_data corresponding to target_volt */
39- volt_data = omap_voltage_get_voltdata(voltdm, target_volt);
40- if (IS_ERR(volt_data))
41- volt_data = NULL;
42-
43 *target_vsel = voltdm->pmic->uv_to_vsel(target_volt);
44 *current_vsel = voltdm->pmic->uv_to_vsel(vdd->curr_volt);
45
46@@ -134,15 +127,7 @@ int omap_vc_pre_scale(struct voltagedomain *voltdm,
47 vc_cmdval |= (*target_vsel << vc->common->cmd_on_shift);
48 voltdm->write(vc_cmdval, vc->cmdval_reg);
49
50- /* Setting vp errorgain based on the voltage */
51- if (volt_data) {
52- vp_errgain_val = voltdm->read(voltdm->vp->vpconfig);
53- vdd->vp_rt_data.vpconfig_errorgain = volt_data->vp_errgain;
54- vp_errgain_val &= voltdm->vp->common->vpconfig_errorgain_mask;
55- vp_errgain_val |= vdd->vp_rt_data.vpconfig_errorgain <<
56- __ffs(voltdm->vp->common->vpconfig_errorgain_mask);
57- voltdm->write(vp_errgain_val, voltdm->vp->vpconfig);
58- }
59+ omap_vp_update_errorgain(voltdm, target_volt);
60
61 return 0;
62 }
63diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c
64index ea61a47..f68a6db 100644
65--- a/arch/arm/mach-omap2/vp.c
66+++ b/arch/arm/mach-omap2/vp.c
67@@ -106,6 +106,25 @@ void __init omap_vp_init(struct voltagedomain *voltdm)
68 voltdm->write(vp_val, vp->vlimitto);
69 }
70
71+int omap_vp_update_errorgain(struct voltagedomain *voltdm,
72+ unsigned long target_volt)
73+{
74+ struct omap_volt_data *volt_data;
75+
76+ /* Get volt_data corresponding to target_volt */
77+ volt_data = omap_voltage_get_voltdata(voltdm, target_volt);
78+ if (IS_ERR(volt_data))
79+ return -EINVAL;
80+
81+ /* Setting vp errorgain based on the voltage */
82+ voltdm->rmw(voltdm->vp->common->vpconfig_errorgain_mask,
83+ volt_data->vp_errgain <<
84+ __ffs(voltdm->vp->common->vpconfig_errorgain_mask),
85+ voltdm->vp->vpconfig);
86+
87+ return 0;
88+}
89+
90 /* VP force update method of voltage scaling */
91 int omap_vp_forceupdate_scale(struct voltagedomain *voltdm,
92 unsigned long target_volt)
93diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h
94index 2afe11d..71ac738 100644
95--- a/arch/arm/mach-omap2/vp.h
96+++ b/arch/arm/mach-omap2/vp.h
97@@ -148,5 +148,7 @@ void omap_vp_disable(struct voltagedomain *voltdm);
98 unsigned long omap_vp_get_curr_volt(struct voltagedomain *voltdm);
99 int omap_vp_forceupdate_scale(struct voltagedomain *voltdm,
100 unsigned long target_volt);
101+int omap_vp_update_errorgain(struct voltagedomain *voltdm,
102+ unsigned long target_volt);
103
104 #endif
105--
1061.7.2.5
107