[glsdk/meta-ti-glsdk.git] / recipes-kernel / linux / linux-3.0 / pm-wip / voltdm / 0102-OMAP3-voltage-add-scalable-flag-to-voltagedomain.patch
1 From 172e1906fd70030ce5aa3cdb60ef9215a43d6ecd Mon Sep 17 00:00:00 2001
2 From: Kevin Hilman <khilman@ti.com>
3 Date: Wed, 23 Mar 2011 17:00:21 -0700
4 Subject: [PATCH 102/149] OMAP3+: voltage: add scalable flag to voltagedomain
6 Add a 'bool scalable' flag to the struct powerdomain and set it for
7 the scalable domains on OMAP3 and OMAP4.
9 Signed-off-by: Kevin Hilman <khilman@ti.com>
10 ---
11 arch/arm/mach-omap2/voltage.c | 3 +++
12 arch/arm/mach-omap2/voltage.h | 2 ++
13 arch/arm/mach-omap2/voltagedomains3xxx_data.c | 2 ++
14 arch/arm/mach-omap2/voltagedomains44xx_data.c | 3 +++
15 4 files changed, 10 insertions(+), 0 deletions(-)
17 diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-omap2/voltage.c
18 index 4f0361a..48a2593 100644
19 --- a/arch/arm/mach-omap2/voltage.c
20 +++ b/arch/arm/mach-omap2/voltage.c
21 @@ -1054,6 +1054,9 @@ int __init omap_voltage_late_init(void)
22 pr_err("%s: Unable to create voltage debugfs main dir\n",
23 __func__);
24 list_for_each_entry(voltdm, &voltdm_list, node) {
25 + if (!voltdm->scalable)
26 + continue;
27 +
28 if (voltdm->vdd) {
29 if (omap_vdd_data_configure(voltdm))
30 continue;
31 diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-omap2/voltage.h
32 index 5440298..25cfb5c 100644
33 --- a/arch/arm/mach-omap2/voltage.h
34 +++ b/arch/arm/mach-omap2/voltage.h
35 @@ -53,11 +53,13 @@ struct omap_vfsm_instance_data {
36 /**
37 * struct voltagedomain - omap voltage domain global structure.
38 * @name: Name of the voltage domain which can be used as a unique identifier.
39 + * @scalable: Whether or not this voltage domain is scalable
40 * @node: list_head linking all voltage domains
41 * @vdd: to be removed
42 */
43 struct voltagedomain {
44 char *name;
45 + bool scalable;
46 struct list_head node;
47 struct omap_vdd_info *vdd;
48 };
49 diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
50 index 42d0b11..d7e1052 100644
51 --- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
52 +++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
53 @@ -61,11 +61,13 @@ static struct omap_vdd_info omap3_vdd2_info = {
55 static struct voltagedomain omap3_voltdm_mpu = {
56 .name = "mpu_iva",
57 + .scalable = true,
58 .vdd = &omap3_vdd1_info,
59 };
61 static struct voltagedomain omap3_voltdm_core = {
62 .name = "core",
63 + .scalable = true,
64 .vdd = &omap3_vdd2_info,
65 };
67 diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c b/arch/arm/mach-omap2/voltagedomains44xx_data.c
68 index 245fdf9..95e1ce5 100644
69 --- a/arch/arm/mach-omap2/voltagedomains44xx_data.c
70 +++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c
71 @@ -70,16 +70,19 @@ static struct omap_vdd_info omap4_vdd_core_info = {
73 static struct voltagedomain omap4_voltdm_mpu = {
74 .name = "mpu",
75 + .scalable = true,
76 .vdd = &omap4_vdd_mpu_info,
77 };
79 static struct voltagedomain omap4_voltdm_iva = {
80 .name = "iva",
81 + .scalable = true,
82 .vdd = &omap4_vdd_iva_info,
83 };
85 static struct voltagedomain omap4_voltdm_core = {
86 .name = "core",
87 + .scalable = true,
88 .vdd = &omap4_vdd_core_info,
89 };
91 --
92 1.6.6.1