* [PATCH v2 0/4] OPP layer: hide OPP implementation details
@ 2009-12-18 23:05 Kevin Hilman
2009-12-18 23:05 ` [PATCH v2 1/4] OMAP OPP: Add accessor function for getting OPP ID Kevin Hilman
0 siblings, 1 reply; 11+ messages in thread
From: Kevin Hilman @ 2009-12-18 23:05 UTC (permalink / raw)
To: linux-omap; +Cc: nm
This series continues on top of Paul's OPP cleanup series and aims to
completly hide the OPP layer implementation details.
To do this, a couple more another accessor
functions have been added so current SR/SRF code can still function.
The goal here is to allow continued OPP layer cleanup and possibly
alternate implementations to be done in parallel with the ongoing
SR/SRF rework efforts.
Unless I hear some objections, this series will be added onto my
pm-wip-opp branch after some more thorough testing.
Tested on OMAP3EVM, RX51
Changes from v1:
- actually works
- Fix SRF indexing after initial terminators were removed
- dropped opp_find_by_index() in favor of changing SRF remove indexing.
Kevin Hilman (4):
OMAP OPP: Add accessor function for getting OPP ID.
OMAP SRF: adjust OPP array access
OMAP SR/SRF: use OPP API for OPP ID, remove direct access
OMAP OPP: hide struct omap_opp internals in OPP layer implementation
arch/arm/mach-omap2/resource34xx.c | 6 +++---
arch/arm/mach-omap2/smartreflex.c | 4 ++--
arch/arm/plat-omap/include/plat/opp.h | 20 ++------------------
arch/arm/plat-omap/opp.c | 24 ++++++++++++++++++++++++
4 files changed, 31 insertions(+), 23 deletions(-)
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH v2 1/4] OMAP OPP: Add accessor function for getting OPP ID.
2009-12-18 23:05 [PATCH v2 0/4] OPP layer: hide OPP implementation details Kevin Hilman
@ 2009-12-18 23:05 ` Kevin Hilman
2009-12-18 23:05 ` [PATCH v2 2/4] OMAP SRF: adjust OPP array access Kevin Hilman
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: Kevin Hilman @ 2009-12-18 23:05 UTC (permalink / raw)
To: linux-omap; +Cc: nm
Add new function opp_get_opp_id() for finding the OPP ID of a given
OPP. This allows us to further hide OPP layer details.
NOTE: OPP IDs are deprecated, and this function will eventually
be removed after all users of OPP IDs are removed.
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
---
arch/arm/plat-omap/include/plat/opp.h | 1 +
arch/arm/plat-omap/opp.c | 5 +++++
2 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/arch/arm/plat-omap/include/plat/opp.h b/arch/arm/plat-omap/include/plat/opp.h
index cdadf67..6fe574c 100644
--- a/arch/arm/plat-omap/include/plat/opp.h
+++ b/arch/arm/plat-omap/include/plat/opp.h
@@ -243,6 +243,7 @@ int opp_disable(struct omap_opp *opp);
struct omap_opp * __deprecated opp_find_by_opp_id(struct omap_opp *opps,
u8 opp_id);
+u8 __deprecated opp_get_opp_id(struct omap_opp *opp);
void opp_init_cpufreq_table(struct omap_opp *opps,
struct cpufreq_frequency_table **table);
diff --git a/arch/arm/plat-omap/opp.c b/arch/arm/plat-omap/opp.c
index e7b6f2a..4f7fa22 100644
--- a/arch/arm/plat-omap/opp.c
+++ b/arch/arm/plat-omap/opp.c
@@ -69,6 +69,11 @@ struct omap_opp * __deprecated opp_find_by_opp_id(struct omap_opp *opps,
return NULL;
}
+u8 __deprecated opp_get_opp_id(struct omap_opp *opp)
+{
+ return opp->opp_id;
+}
+
int opp_get_opp_count(struct omap_opp *oppl)
{
u8 n = 0;
--
1.6.6.rc2.1.g42108
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 2/4] OMAP SRF: adjust OPP array access
2009-12-18 23:05 ` [PATCH v2 1/4] OMAP OPP: Add accessor function for getting OPP ID Kevin Hilman
@ 2009-12-18 23:05 ` Kevin Hilman
2009-12-18 23:05 ` [PATCH v2 3/4] OMAP SR/SRF: use OPP API for OPP ID, remove direct access Kevin Hilman
2009-12-19 12:00 ` [PATCH v2 2/4] OMAP SRF: adjust OPP array access Menon, Nishanth
2009-12-19 11:56 ` [PATCH v2 1/4] OMAP OPP: Add accessor function for getting OPP ID Menon, Nishanth
2009-12-21 7:11 ` Romit Dasgupta
2 siblings, 2 replies; 11+ messages in thread
From: Kevin Hilman @ 2009-12-18 23:05 UTC (permalink / raw)
To: linux-omap; +Cc: nm
With the initial terminators removed from the OPP struct arrarys,
the direct indexing of the array needs to be adjusted by one.
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
---
arch/arm/mach-omap2/resource34xx.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-omap2/resource34xx.c b/arch/arm/mach-omap2/resource34xx.c
index 05e70b7..1fa8bb5 100644
--- a/arch/arm/mach-omap2/resource34xx.c
+++ b/arch/arm/mach-omap2/resource34xx.c
@@ -337,8 +337,8 @@ static int program_opp(int res, struct omap_opp *opp, int target_level,
#ifdef CONFIG_OMAP_SMARTREFLEX
unsigned long t_opp, c_opp;
- t_opp = ID_VDD(res) | ID_OPP_NO(opp[target_level].opp_id);
- c_opp = ID_VDD(res) | ID_OPP_NO(opp[current_level].opp_id);
+ t_opp = ID_VDD(res) | ID_OPP_NO(opp[target_level - 1].opp_id);
+ c_opp = ID_VDD(res) | ID_OPP_NO(opp[current_level - 1].opp_id);
#endif
/* See if have a freq associated, if not, invalid opp */
--
1.6.6.rc2.1.g42108
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 3/4] OMAP SR/SRF: use OPP API for OPP ID, remove direct access
2009-12-18 23:05 ` [PATCH v2 2/4] OMAP SRF: adjust OPP array access Kevin Hilman
@ 2009-12-18 23:05 ` Kevin Hilman
2009-12-18 23:05 ` [PATCH v2 4/4] OMAP OPP: hide struct omap_opp internals in OPP layer implementation Kevin Hilman
2009-12-19 12:03 ` [PATCH v2 3/4] OMAP SR/SRF: use OPP API for OPP ID, remove direct access Menon, Nishanth
2009-12-19 12:00 ` [PATCH v2 2/4] OMAP SRF: adjust OPP array access Menon, Nishanth
1 sibling, 2 replies; 11+ messages in thread
From: Kevin Hilman @ 2009-12-18 23:05 UTC (permalink / raw)
To: linux-omap; +Cc: nm
SR and SRF currenly direclty access OPP struct internals. Use new
accessor function to get OPP ID.
Also SRF was doing doing direct access of the OPP struct array using a
convoluted conversion from a 'level' to an OPP ID, when they're
actually the same thing.
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
---
arch/arm/mach-omap2/resource34xx.c | 6 +++---
arch/arm/mach-omap2/smartreflex.c | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/arm/mach-omap2/resource34xx.c b/arch/arm/mach-omap2/resource34xx.c
index 1fa8bb5..31b8af2 100644
--- a/arch/arm/mach-omap2/resource34xx.c
+++ b/arch/arm/mach-omap2/resource34xx.c
@@ -204,7 +204,7 @@ static int __deprecated freq_to_opp(u8 *opp_id, struct omap_opp *opps,
opp = opp_find_freq_ceil(opps, &freq);
if (IS_ERR(opp))
return -EINVAL;
- *opp_id = opp->opp_id;
+ *opp_id = opp_get_opp_id(opp);
return 0;
}
@@ -337,8 +337,8 @@ static int program_opp(int res, struct omap_opp *opp, int target_level,
#ifdef CONFIG_OMAP_SMARTREFLEX
unsigned long t_opp, c_opp;
- t_opp = ID_VDD(res) | ID_OPP_NO(opp[target_level - 1].opp_id);
- c_opp = ID_VDD(res) | ID_OPP_NO(opp[current_level - 1].opp_id);
+ t_opp = ID_VDD(res) | ID_OPP_NO(target_level - 1);
+ c_opp = ID_VDD(res) | ID_OPP_NO(current_level - 1);
#endif
/* See if have a freq associated, if not, invalid opp */
diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
index 9c0d5bf..d341857 100644
--- a/arch/arm/mach-omap2/smartreflex.c
+++ b/arch/arm/mach-omap2/smartreflex.c
@@ -159,7 +159,7 @@ static u8 get_vdd1_opp(void)
if (IS_ERR(opp))
return 0;
- return opp->opp_id;
+ return opp_get_opp_id(opp);
}
static u8 get_vdd2_opp(void)
@@ -174,7 +174,7 @@ static u8 get_vdd2_opp(void)
if (IS_ERR(opp))
return 0;
- return opp->opp_id;
+ return opp_get_opp_id(opp);
}
--
1.6.6.rc2.1.g42108
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH v2 4/4] OMAP OPP: hide struct omap_opp internals in OPP layer implementation
2009-12-18 23:05 ` [PATCH v2 3/4] OMAP SR/SRF: use OPP API for OPP ID, remove direct access Kevin Hilman
@ 2009-12-18 23:05 ` Kevin Hilman
2009-12-19 12:04 ` Menon, Nishanth
2009-12-19 12:03 ` [PATCH v2 3/4] OMAP SR/SRF: use OPP API for OPP ID, remove direct access Menon, Nishanth
1 sibling, 1 reply; 11+ messages in thread
From: Kevin Hilman @ 2009-12-18 23:05 UTC (permalink / raw)
To: linux-omap; +Cc: nm
Now that we have accessor/helper functions for all the OPP layer
details, move 'struct omap_opp' into the OPP layer so no direct
accesses to OPP internals can be done.
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
---
arch/arm/plat-omap/include/plat/opp.h | 19 +------------------
arch/arm/plat-omap/opp.c | 19 +++++++++++++++++++
2 files changed, 20 insertions(+), 18 deletions(-)
diff --git a/arch/arm/plat-omap/include/plat/opp.h b/arch/arm/plat-omap/include/plat/opp.h
index 6fe574c..9f91ad3 100644
--- a/arch/arm/plat-omap/include/plat/opp.h
+++ b/arch/arm/plat-omap/include/plat/opp.h
@@ -17,24 +17,7 @@ extern struct omap_opp *mpu_opps;
extern struct omap_opp *dsp_opps;
extern struct omap_opp *l3_opps;
-/**
- * struct omap_opp - OMAP OPP description structure
- * @enabled: true/false - marking this OPP as enabled/disabled
- * @rate: Frequency in hertz
- * @opp_id: (DEPRECATED) opp identifier
- * @u_volt: minimum microvolts DC required for this OPP to function
- *
- * This structure stores the OPP information for a given domain.
- * Due to legacy reasons, this structure is currently exposed and
- * will soon be removed elsewhere and will only be used as a handle
- * from the OPP internal referencing mechanism
- */
-struct omap_opp {
- bool enabled;
- unsigned long rate;
- unsigned long u_volt;
- u8 __deprecated opp_id;
-};
+struct omap_opp;
/**
* opp_get_voltage() - Gets the voltage corresponding to an opp
diff --git a/arch/arm/plat-omap/opp.c b/arch/arm/plat-omap/opp.c
index 4f7fa22..4fe1933 100644
--- a/arch/arm/plat-omap/opp.c
+++ b/arch/arm/plat-omap/opp.c
@@ -19,6 +19,25 @@
#include <plat/opp_twl_tps.h>
#include <plat/opp.h>
+/**
+ * struct omap_opp - OMAP OPP description structure
+ * @enabled: true/false - marking this OPP as enabled/disabled
+ * @rate: Frequency in hertz
+ * @opp_id: (DEPRECATED) opp identifier
+ * @u_volt: minimum microvolts DC required for this OPP to function
+ *
+ * This structure stores the OPP information for a given domain.
+ * Due to legacy reasons, this structure is currently exposed and
+ * will soon be removed elsewhere and will only be used as a handle
+ * from the OPP internal referencing mechanism
+ */
+struct omap_opp {
+ bool enabled;
+ unsigned long rate;
+ unsigned long u_volt;
+ u8 opp_id;
+};
+
/*
* DEPRECATED: Meant to detect end of opp array
* This is meant to help co-exist with current SRF etc
--
1.6.6.rc2.1.g42108
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/4] OMAP OPP: Add accessor function for getting OPP ID.
2009-12-18 23:05 ` [PATCH v2 1/4] OMAP OPP: Add accessor function for getting OPP ID Kevin Hilman
2009-12-18 23:05 ` [PATCH v2 2/4] OMAP SRF: adjust OPP array access Kevin Hilman
@ 2009-12-19 11:56 ` Menon, Nishanth
2009-12-21 7:11 ` Romit Dasgupta
2 siblings, 0 replies; 11+ messages in thread
From: Menon, Nishanth @ 2009-12-19 11:56 UTC (permalink / raw)
To: Kevin Hilman; +Cc: linux-omap@vger.kernel.org
Kevin Hilman said the following on 12/19/2009 04:35 AM:
> Add new function opp_get_opp_id() for finding the OPP ID of a given
> OPP. This allows us to further hide OPP layer details.
>
> NOTE: OPP IDs are deprecated, and this function will eventually
> be removed after all users of OPP IDs are removed.
>
> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
> ---
> arch/arm/plat-omap/include/plat/opp.h | 1 +
> arch/arm/plat-omap/opp.c | 5 +++++
> 2 files changed, 6 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/plat-omap/include/plat/opp.h b/arch/arm/plat-omap/include/plat/opp.h
> index cdadf67..6fe574c 100644
> --- a/arch/arm/plat-omap/include/plat/opp.h
> +++ b/arch/arm/plat-omap/include/plat/opp.h
> @@ -243,6 +243,7 @@ int opp_disable(struct omap_opp *opp);
>
> struct omap_opp * __deprecated opp_find_by_opp_id(struct omap_opp *opps,
> u8 opp_id);
> +u8 __deprecated opp_get_opp_id(struct omap_opp *opp);
>
Sigh.. ok... been trying to avoid this precisely :(
Acked-by: Nishanth Menon <nm@ti.com>
>
> void opp_init_cpufreq_table(struct omap_opp *opps,
> struct cpufreq_frequency_table **table);
> diff --git a/arch/arm/plat-omap/opp.c b/arch/arm/plat-omap/opp.c
> index e7b6f2a..4f7fa22 100644
> --- a/arch/arm/plat-omap/opp.c
> +++ b/arch/arm/plat-omap/opp.c
> @@ -69,6 +69,11 @@ struct omap_opp * __deprecated opp_find_by_opp_id(struct omap_opp *opps,
> return NULL;
> }
>
> +u8 __deprecated opp_get_opp_id(struct omap_opp *opp)
> +{
> + return opp->opp_id;
> +}
> +
> int opp_get_opp_count(struct omap_opp *oppl)
> {
> u8 n = 0;
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/4] OMAP SRF: adjust OPP array access
2009-12-18 23:05 ` [PATCH v2 2/4] OMAP SRF: adjust OPP array access Kevin Hilman
2009-12-18 23:05 ` [PATCH v2 3/4] OMAP SR/SRF: use OPP API for OPP ID, remove direct access Kevin Hilman
@ 2009-12-19 12:00 ` Menon, Nishanth
1 sibling, 0 replies; 11+ messages in thread
From: Menon, Nishanth @ 2009-12-19 12:00 UTC (permalink / raw)
To: Kevin Hilman; +Cc: linux-omap@vger.kernel.org
Kevin Hilman said the following on 12/19/2009 04:35 AM:
> With the initial terminators removed from the OPP struct arrarys,
> the direct indexing of the array needs to be adjusted by one.
>
> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
> ---
> arch/arm/mach-omap2/resource34xx.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/resource34xx.c b/arch/arm/mach-omap2/resource34xx.c
> index 05e70b7..1fa8bb5 100644
> --- a/arch/arm/mach-omap2/resource34xx.c
> +++ b/arch/arm/mach-omap2/resource34xx.c
> @@ -337,8 +337,8 @@ static int program_opp(int res, struct omap_opp *opp, int target_level,
> #ifdef CONFIG_OMAP_SMARTREFLEX
> unsigned long t_opp, c_opp;
>
> - t_opp = ID_VDD(res) | ID_OPP_NO(opp[target_level].opp_id);
> - c_opp = ID_VDD(res) | ID_OPP_NO(opp[current_level].opp_id);
> + t_opp = ID_VDD(res) | ID_OPP_NO(opp[target_level - 1].opp_id);
> + c_opp = ID_VDD(res) | ID_OPP_NO(opp[current_level - 1].opp_id);
> #endif
>
Acked-by: Nishanth Menon <nm@ti.com>
>
> /* See if have a freq associated, if not, invalid opp */
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 3/4] OMAP SR/SRF: use OPP API for OPP ID, remove direct access
2009-12-18 23:05 ` [PATCH v2 3/4] OMAP SR/SRF: use OPP API for OPP ID, remove direct access Kevin Hilman
2009-12-18 23:05 ` [PATCH v2 4/4] OMAP OPP: hide struct omap_opp internals in OPP layer implementation Kevin Hilman
@ 2009-12-19 12:03 ` Menon, Nishanth
2009-12-22 16:16 ` Kevin Hilman
1 sibling, 1 reply; 11+ messages in thread
From: Menon, Nishanth @ 2009-12-19 12:03 UTC (permalink / raw)
To: Kevin Hilman; +Cc: linux-omap@vger.kernel.org
Kevin Hilman said the following on 12/19/2009 04:35 AM:
> SR and SRF currenly direclty access OPP struct internals. Use new
> accessor function to get OPP ID.
>
> Also SRF was doing doing direct access of the OPP struct array using a
> convoluted conversion from a 'level' to an OPP ID, when they're
> actually the same thing.
>
> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
> ---
> arch/arm/mach-omap2/resource34xx.c | 6 +++---
> arch/arm/mach-omap2/smartreflex.c | 4 ++--
> 2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/resource34xx.c b/arch/arm/mach-omap2/resource34xx.c
> index 1fa8bb5..31b8af2 100644
> --- a/arch/arm/mach-omap2/resource34xx.c
> +++ b/arch/arm/mach-omap2/resource34xx.c
> @@ -204,7 +204,7 @@ static int __deprecated freq_to_opp(u8 *opp_id, struct omap_opp *opps,
> opp = opp_find_freq_ceil(opps, &freq);
> if (IS_ERR(opp))
> return -EINVAL;
> - *opp_id = opp->opp_id;
> + *opp_id = opp_get_opp_id(opp);
> return 0;
> }
>
> @@ -337,8 +337,8 @@ static int program_opp(int res, struct omap_opp *opp, int target_level,
> #ifdef CONFIG_OMAP_SMARTREFLEX
> unsigned long t_opp, c_opp;
>
> - t_opp = ID_VDD(res) | ID_OPP_NO(opp[target_level - 1].opp_id);
> - c_opp = ID_VDD(res) | ID_OPP_NO(opp[current_level - 1].opp_id);
> + t_opp = ID_VDD(res) | ID_OPP_NO(target_level - 1);
> + c_opp = ID_VDD(res) | ID_OPP_NO(current_level - 1);
>
not sure of this.
target_level = 3,
opp[target_level - 1].opp_id ==3
BUT,
target_level -1 = 2
these are not the same.
> #endif
>
> /* See if have a freq associated, if not, invalid opp */
> diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
> index 9c0d5bf..d341857 100644
> --- a/arch/arm/mach-omap2/smartreflex.c
> +++ b/arch/arm/mach-omap2/smartreflex.c
> @@ -159,7 +159,7 @@ static u8 get_vdd1_opp(void)
> if (IS_ERR(opp))
> return 0;
>
> - return opp->opp_id;
> + return opp_get_opp_id(opp);
> }
>
> static u8 get_vdd2_opp(void)
> @@ -174,7 +174,7 @@ static u8 get_vdd2_opp(void)
> if (IS_ERR(opp))
> return 0;
>
> - return opp->opp_id;
> + return opp_get_opp_id(opp);
> }
>
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 4/4] OMAP OPP: hide struct omap_opp internals in OPP layer implementation
2009-12-18 23:05 ` [PATCH v2 4/4] OMAP OPP: hide struct omap_opp internals in OPP layer implementation Kevin Hilman
@ 2009-12-19 12:04 ` Menon, Nishanth
0 siblings, 0 replies; 11+ messages in thread
From: Menon, Nishanth @ 2009-12-19 12:04 UTC (permalink / raw)
To: Kevin Hilman; +Cc: linux-omap@vger.kernel.org
Kevin Hilman said the following on 12/19/2009 04:35 AM:
> Now that we have accessor/helper functions for all the OPP layer
> details, move 'struct omap_opp' into the OPP layer so no direct
> accesses to OPP internals can be done.
>
> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
> ---
> arch/arm/plat-omap/include/plat/opp.h | 19 +------------------
> arch/arm/plat-omap/opp.c | 19 +++++++++++++++++++
> 2 files changed, 20 insertions(+), 18 deletions(-)
>
> diff --git a/arch/arm/plat-omap/include/plat/opp.h b/arch/arm/plat-omap/include/plat/opp.h
> index 6fe574c..9f91ad3 100644
> --- a/arch/arm/plat-omap/include/plat/opp.h
> +++ b/arch/arm/plat-omap/include/plat/opp.h
> @@ -17,24 +17,7 @@ extern struct omap_opp *mpu_opps;
> extern struct omap_opp *dsp_opps;
> extern struct omap_opp *l3_opps;
>
> -/**
> - * struct omap_opp - OMAP OPP description structure
> - * @enabled: true/false - marking this OPP as enabled/disabled
> - * @rate: Frequency in hertz
> - * @opp_id: (DEPRECATED) opp identifier
> - * @u_volt: minimum microvolts DC required for this OPP to function
> - *
> - * This structure stores the OPP information for a given domain.
> - * Due to legacy reasons, this structure is currently exposed and
> - * will soon be removed elsewhere and will only be used as a handle
> - * from the OPP internal referencing mechanism
> - */
> -struct omap_opp {
> - bool enabled;
> - unsigned long rate;
> - unsigned long u_volt;
> - u8 __deprecated opp_id;
> -};
> +struct omap_opp;
>
> /**
> * opp_get_voltage() - Gets the voltage corresponding to an opp
> diff --git a/arch/arm/plat-omap/opp.c b/arch/arm/plat-omap/opp.c
> index 4f7fa22..4fe1933 100644
> --- a/arch/arm/plat-omap/opp.c
> +++ b/arch/arm/plat-omap/opp.c
> @@ -19,6 +19,25 @@
> #include <plat/opp_twl_tps.h>
> #include <plat/opp.h>
>
> +/**
> + * struct omap_opp - OMAP OPP description structure
> + * @enabled: true/false - marking this OPP as enabled/disabled
> + * @rate: Frequency in hertz
> + * @opp_id: (DEPRECATED) opp identifier
> + * @u_volt: minimum microvolts DC required for this OPP to function
> + *
> + * This structure stores the OPP information for a given domain.
> + * Due to legacy reasons, this structure is currently exposed and
> + * will soon be removed elsewhere and will only be used as a handle
> + * from the OPP internal referencing mechanism
> + */
> +struct omap_opp {
> + bool enabled;
> + unsigned long rate;
> + unsigned long u_volt;
> + u8 opp_id;
> +};
> +
> /*
> * DEPRECATED: Meant to detect end of opp array
> * This is meant to help co-exist with current SRF etc
>
big time ACK if we can fix the 2/3 patch
Acked-by: Nishanth Menon <nm@ti.com>
Thanks.
Regards,
Nishanth Menon
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 1/4] OMAP OPP: Add accessor function for getting OPP ID.
2009-12-18 23:05 ` [PATCH v2 1/4] OMAP OPP: Add accessor function for getting OPP ID Kevin Hilman
2009-12-18 23:05 ` [PATCH v2 2/4] OMAP SRF: adjust OPP array access Kevin Hilman
2009-12-19 11:56 ` [PATCH v2 1/4] OMAP OPP: Add accessor function for getting OPP ID Menon, Nishanth
@ 2009-12-21 7:11 ` Romit Dasgupta
2 siblings, 0 replies; 11+ messages in thread
From: Romit Dasgupta @ 2009-12-21 7:11 UTC (permalink / raw)
To: Kevin Hilman; +Cc: linux-omap@vger.kernel.org, Menon, Nishanth
Kevin,
Some comments below:
Kevin Hilman wrote:
> Add new function opp_get_opp_id() for finding the OPP ID of a given
> OPP. This allows us to further hide OPP layer details.
>
> NOTE: OPP IDs are deprecated, and this function will eventually
> be removed after all users of OPP IDs are removed.
Let us not add a deprecated function. If we are fixing this let us fix it right
the first time.
>
> +u8 __deprecated opp_get_opp_id(struct omap_opp *opp)
> +{
> + return opp->opp_id;
> +}
> +
> int opp_get_opp_count(struct omap_opp *oppl)
> {
> u8 n = 0;
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH v2 3/4] OMAP SR/SRF: use OPP API for OPP ID, remove direct access
2009-12-19 12:03 ` [PATCH v2 3/4] OMAP SR/SRF: use OPP API for OPP ID, remove direct access Menon, Nishanth
@ 2009-12-22 16:16 ` Kevin Hilman
0 siblings, 0 replies; 11+ messages in thread
From: Kevin Hilman @ 2009-12-22 16:16 UTC (permalink / raw)
To: nm; +Cc: linux-omap@vger.kernel.org
"Menon, Nishanth" <nm@ti.com> writes:
> Kevin Hilman said the following on 12/19/2009 04:35 AM:
>> SR and SRF currenly direclty access OPP struct internals. Use new
>> accessor function to get OPP ID.
>>
>> Also SRF was doing doing direct access of the OPP struct array using a
>> convoluted conversion from a 'level' to an OPP ID, when they're
>> actually the same thing.
>>
>> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
>> ---
>> arch/arm/mach-omap2/resource34xx.c | 6 +++---
>> arch/arm/mach-omap2/smartreflex.c | 4 ++--
>> 2 files changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/resource34xx.c b/arch/arm/mach-omap2/resource34xx.c
>> index 1fa8bb5..31b8af2 100644
>> --- a/arch/arm/mach-omap2/resource34xx.c
>> +++ b/arch/arm/mach-omap2/resource34xx.c
>> @@ -204,7 +204,7 @@ static int __deprecated freq_to_opp(u8 *opp_id, struct omap_opp *opps,
>> opp = opp_find_freq_ceil(opps, &freq);
>> if (IS_ERR(opp))
>> return -EINVAL;
>> - *opp_id = opp->opp_id;
>> + *opp_id = opp_get_opp_id(opp);
>> return 0;
>> }
>> @@ -337,8 +337,8 @@ static int program_opp(int res, struct omap_opp
>> *opp, int target_level,
>> #ifdef CONFIG_OMAP_SMARTREFLEX
>> unsigned long t_opp, c_opp;
>> - t_opp = ID_VDD(res) | ID_OPP_NO(opp[target_level - 1].opp_id);
>> - c_opp = ID_VDD(res) | ID_OPP_NO(opp[current_level - 1].opp_id);
>> + t_opp = ID_VDD(res) | ID_OPP_NO(target_level - 1);
>> + c_opp = ID_VDD(res) | ID_OPP_NO(current_level - 1);
>>
> not sure of this.
> target_level = 3,
> opp[target_level - 1].opp_id ==3
> BUT,
> target_level -1 = 2
> these are not the same.
Hmm, good catch.
Now that it's not being used as index into OPP array, I should be
using target level directly.
Will update in pm-wip-opp.
Kevin
>> #endif
>> /* See if have a freq associated, if not, invalid opp */
>> diff --git a/arch/arm/mach-omap2/smartreflex.c b/arch/arm/mach-omap2/smartreflex.c
>> index 9c0d5bf..d341857 100644
>> --- a/arch/arm/mach-omap2/smartreflex.c
>> +++ b/arch/arm/mach-omap2/smartreflex.c
>> @@ -159,7 +159,7 @@ static u8 get_vdd1_opp(void)
>> if (IS_ERR(opp))
>> return 0;
>> - return opp->opp_id;
>> + return opp_get_opp_id(opp);
>> }
>> static u8 get_vdd2_opp(void)
>> @@ -174,7 +174,7 @@ static u8 get_vdd2_opp(void)
>> if (IS_ERR(opp))
>> return 0;
>> - return opp->opp_id;
>> + return opp_get_opp_id(opp);
>> }
>>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2009-12-22 16:16 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-18 23:05 [PATCH v2 0/4] OPP layer: hide OPP implementation details Kevin Hilman
2009-12-18 23:05 ` [PATCH v2 1/4] OMAP OPP: Add accessor function for getting OPP ID Kevin Hilman
2009-12-18 23:05 ` [PATCH v2 2/4] OMAP SRF: adjust OPP array access Kevin Hilman
2009-12-18 23:05 ` [PATCH v2 3/4] OMAP SR/SRF: use OPP API for OPP ID, remove direct access Kevin Hilman
2009-12-18 23:05 ` [PATCH v2 4/4] OMAP OPP: hide struct omap_opp internals in OPP layer implementation Kevin Hilman
2009-12-19 12:04 ` Menon, Nishanth
2009-12-19 12:03 ` [PATCH v2 3/4] OMAP SR/SRF: use OPP API for OPP ID, remove direct access Menon, Nishanth
2009-12-22 16:16 ` Kevin Hilman
2009-12-19 12:00 ` [PATCH v2 2/4] OMAP SRF: adjust OPP array access Menon, Nishanth
2009-12-19 11:56 ` [PATCH v2 1/4] OMAP OPP: Add accessor function for getting OPP ID Menon, Nishanth
2009-12-21 7:11 ` Romit Dasgupta
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox