2010-11-09 18:24:27

by Mark Brown

[permalink] [raw]
Subject: [PATCH] PM: Hide OPP configuration when SoCs do not provide an implementation

Since the OPP API is only useful with an appropraite SoC-specific
implementation there is no point in offering the ability to enable
the API on general systems. Provide an ARCH_HAS OPP Kconfig symbol
which masks out the option unless selected by an implementation.

Signed-off-by: Mark Brown <[email protected]>
---
Documentation/power/opp.txt | 3 +++
kernel/power/Kconfig | 4 ++++
2 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/Documentation/power/opp.txt b/Documentation/power/opp.txt
index 44d87ad..cd44558 100644
--- a/Documentation/power/opp.txt
+++ b/Documentation/power/opp.txt
@@ -37,6 +37,9 @@ Typical usage of the OPP library is as follows:
SoC framework -> modifies on required cases certain OPPs -> OPP layer
-> queries to search/retrieve information ->

+Architectures that provide a SoC framework for OPP should select ARCH_HAS_OPP
+to make the OPP layer available.
+
OPP layer expects each domain to be represented by a unique device pointer. SoC
framework registers a set of initial OPPs per device with the OPP layer. This
list is expected to be an optimally small number typically around 5 per device.
diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
index 29bff61..a5aff3e 100644
--- a/kernel/power/Kconfig
+++ b/kernel/power/Kconfig
@@ -246,9 +246,13 @@ config PM_OPS
depends on PM_SLEEP || PM_RUNTIME
default y

+config ARCH_HAS_OPP
+ bool
+
config PM_OPP
bool "Operating Performance Point (OPP) Layer library"
depends on PM
+ depends on ARCH_HAS_OPP
---help---
SOCs have a standard set of tuples consisting of frequency and
voltage pairs that the device will support per voltage domain. This
--
1.7.1


2010-11-09 19:11:43

by Nishanth Menon

[permalink] [raw]
Subject: Re: [PATCH] PM: Hide OPP configuration when SoCs do not provide an implementation

Mark Brown had written, on 11/09/2010 12:24 PM, the following:
> Since the OPP API is only useful with an appropraite SoC-specific
> implementation there is no point in offering the ability to enable
> the API on general systems. Provide an ARCH_HAS OPP Kconfig symbol
> which masks out the option unless selected by an implementation.
Thanks. yep, this is a good change to have.

>
> Signed-off-by: Mark Brown <[email protected]>

Acked-by: Nishanth Menon <[email protected]>

> ---
> Documentation/power/opp.txt | 3 +++
> kernel/power/Kconfig | 4 ++++
> 2 files changed, 7 insertions(+), 0 deletions(-)
>
> diff --git a/Documentation/power/opp.txt b/Documentation/power/opp.txt
> index 44d87ad..cd44558 100644
> --- a/Documentation/power/opp.txt
> +++ b/Documentation/power/opp.txt
> @@ -37,6 +37,9 @@ Typical usage of the OPP library is as follows:
> SoC framework -> modifies on required cases certain OPPs -> OPP layer
> -> queries to search/retrieve information ->
>
> +Architectures that provide a SoC framework for OPP should select ARCH_HAS_OPP
> +to make the OPP layer available.
> +
> OPP layer expects each domain to be represented by a unique device pointer. SoC
> framework registers a set of initial OPPs per device with the OPP layer. This
> list is expected to be an optimally small number typically around 5 per device.
> diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
> index 29bff61..a5aff3e 100644
> --- a/kernel/power/Kconfig
> +++ b/kernel/power/Kconfig
> @@ -246,9 +246,13 @@ config PM_OPS
> depends on PM_SLEEP || PM_RUNTIME
> default y
>
> +config ARCH_HAS_OPP
> + bool
> +
> config PM_OPP
> bool "Operating Performance Point (OPP) Layer library"
> depends on PM
> + depends on ARCH_HAS_OPP
> ---help---
> SOCs have a standard set of tuples consisting of frequency and
> voltage pairs that the device will support per voltage domain. This


--
Regards,
Nishanth Menon

2010-11-09 19:17:57

by Kevin Hilman

[permalink] [raw]
Subject: Re: [PATCH] PM: Hide OPP configuration when SoCs do not provide an implementation

Mark Brown <[email protected]> writes:

> Since the OPP API is only useful with an appropraite SoC-specific
> implementation there is no point in offering the ability to enable
> the API on general systems. Provide an ARCH_HAS OPP Kconfig symbol
> which masks out the option unless selected by an implementation.
>
> Signed-off-by: Mark Brown <[email protected]>

Acked-by: Kevin Hilman <[email protected]>

> ---
> Documentation/power/opp.txt | 3 +++
> kernel/power/Kconfig | 4 ++++
> 2 files changed, 7 insertions(+), 0 deletions(-)
>
> diff --git a/Documentation/power/opp.txt b/Documentation/power/opp.txt
> index 44d87ad..cd44558 100644
> --- a/Documentation/power/opp.txt
> +++ b/Documentation/power/opp.txt
> @@ -37,6 +37,9 @@ Typical usage of the OPP library is as follows:
> SoC framework -> modifies on required cases certain OPPs -> OPP layer
> -> queries to search/retrieve information ->
>
> +Architectures that provide a SoC framework for OPP should select ARCH_HAS_OPP
> +to make the OPP layer available.
> +
> OPP layer expects each domain to be represented by a unique device pointer. SoC
> framework registers a set of initial OPPs per device with the OPP layer. This
> list is expected to be an optimally small number typically around 5 per device.
> diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
> index 29bff61..a5aff3e 100644
> --- a/kernel/power/Kconfig
> +++ b/kernel/power/Kconfig
> @@ -246,9 +246,13 @@ config PM_OPS
> depends on PM_SLEEP || PM_RUNTIME
> default y
>
> +config ARCH_HAS_OPP
> + bool
> +
> config PM_OPP
> bool "Operating Performance Point (OPP) Layer library"
> depends on PM
> + depends on ARCH_HAS_OPP
> ---help---
> SOCs have a standard set of tuples consisting of frequency and
> voltage pairs that the device will support per voltage domain. This

2010-11-11 00:53:51

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH] PM: Hide OPP configuration when SoCs do not provide an implementation

On Tuesday, November 09, 2010, Kevin Hilman wrote:
> Mark Brown <[email protected]> writes:
>
> > Since the OPP API is only useful with an appropraite SoC-specific
> > implementation there is no point in offering the ability to enable
> > the API on general systems. Provide an ARCH_HAS OPP Kconfig symbol
> > which masks out the option unless selected by an implementation.
> >
> > Signed-off-by: Mark Brown <[email protected]>
>
> Acked-by: Kevin Hilman <[email protected]>

Applied to suspend-2.6/linux-next, will push to Linus next week.

Thanks,
Rafael


> > ---
> > Documentation/power/opp.txt | 3 +++
> > kernel/power/Kconfig | 4 ++++
> > 2 files changed, 7 insertions(+), 0 deletions(-)
> >
> > diff --git a/Documentation/power/opp.txt b/Documentation/power/opp.txt
> > index 44d87ad..cd44558 100644
> > --- a/Documentation/power/opp.txt
> > +++ b/Documentation/power/opp.txt
> > @@ -37,6 +37,9 @@ Typical usage of the OPP library is as follows:
> > SoC framework -> modifies on required cases certain OPPs -> OPP layer
> > -> queries to search/retrieve information ->
> >
> > +Architectures that provide a SoC framework for OPP should select ARCH_HAS_OPP
> > +to make the OPP layer available.
> > +
> > OPP layer expects each domain to be represented by a unique device pointer. SoC
> > framework registers a set of initial OPPs per device with the OPP layer. This
> > list is expected to be an optimally small number typically around 5 per device.
> > diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
> > index 29bff61..a5aff3e 100644
> > --- a/kernel/power/Kconfig
> > +++ b/kernel/power/Kconfig
> > @@ -246,9 +246,13 @@ config PM_OPS
> > depends on PM_SLEEP || PM_RUNTIME
> > default y
> >
> > +config ARCH_HAS_OPP
> > + bool
> > +
> > config PM_OPP
> > bool "Operating Performance Point (OPP) Layer library"
> > depends on PM
> > + depends on ARCH_HAS_OPP
> > ---help---
> > SOCs have a standard set of tuples consisting of frequency and
> > voltage pairs that the device will support per voltage domain. This
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
>