* [PATCH 0/2] ARM: OMAP3/4: cpuidle - misc fixes
@ 2012-05-04 17:18 Daniel Lezcano
2012-05-04 17:18 ` [PATCH 1/2] ARM: OMAP3: cpuidle - check the powerdomain lookup Daniel Lezcano
2012-05-04 17:18 ` [PATCH 2/2] ARM: OMAP3/4: consolidate cpuidle Makefile Daniel Lezcano
0 siblings, 2 replies; 8+ messages in thread
From: Daniel Lezcano @ 2012-05-04 17:18 UTC (permalink / raw)
To: linux-arm-kernel
These two patches are coming from the series I previously
sent for the cpuidle OMAP3/4 cleanups.
The first one, move the powerdomain lookup check in the init
function, the second one fix the linkage error, when the
CONFIG_PM is not set while CONFIG_CPU_IDLE is. Omap's Kconfig
has been modified to select CONFIG_PM when CONFIG_CPU_IDLE is
set.
I compiled with different options but I was not able to boot
my board because the kernel panics for another reason.
Daniel Lezcano (2):
ARM: OMAP3: cpuidle - check the powerdomain lookup
ARM: OMAP3/4: consolidate cpuidle Makefile
arch/arm/mach-omap2/Kconfig | 2 ++
arch/arm/mach-omap2/Makefile | 11 +++++++----
arch/arm/mach-omap2/cpuidle34xx.c | 11 +++--------
arch/arm/mach-omap2/cpuidle44xx.c | 8 --------
arch/arm/mach-omap2/pm.h | 17 +++++++++++++++--
5 files changed, 27 insertions(+), 22 deletions(-)
--
1.7.5.4
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] ARM: OMAP3: cpuidle - check the powerdomain lookup
2012-05-04 17:18 [PATCH 0/2] ARM: OMAP3/4: cpuidle - misc fixes Daniel Lezcano
@ 2012-05-04 17:18 ` Daniel Lezcano
2012-05-04 21:23 ` Kevin Hilman
2012-05-04 17:18 ` [PATCH 2/2] ARM: OMAP3/4: consolidate cpuidle Makefile Daniel Lezcano
1 sibling, 1 reply; 8+ messages in thread
From: Daniel Lezcano @ 2012-05-04 17:18 UTC (permalink / raw)
To: linux-arm-kernel
At init time, check the powerdomains lookup is successful otherwise
exit the cpuidle driver init function with -ENODEV like what is done for the
omap3 cpuidle driver.
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: Jean Pihet <j-pihet@ti.com>
---
arch/arm/mach-omap2/cpuidle34xx.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c
index f682e17..207bc1c 100644
--- a/arch/arm/mach-omap2/cpuidle34xx.c
+++ b/arch/arm/mach-omap2/cpuidle34xx.c
@@ -363,6 +363,9 @@ int __init omap3_idle_init(void)
per_pd = pwrdm_lookup("per_pwrdm");
cam_pd = pwrdm_lookup("cam_pwrdm");
+ if (!mpu_pd || !core_pd || !per_pd || !cam_pd)
+ return -ENODEV;
+
cpuidle_register_driver(&omap3_idle_driver);
dev = &per_cpu(omap3_idle_dev, smp_processor_id());
--
1.7.5.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] ARM: OMAP3/4: consolidate cpuidle Makefile
2012-05-04 17:18 [PATCH 0/2] ARM: OMAP3/4: cpuidle - misc fixes Daniel Lezcano
2012-05-04 17:18 ` [PATCH 1/2] ARM: OMAP3: cpuidle - check the powerdomain lookup Daniel Lezcano
@ 2012-05-04 17:18 ` Daniel Lezcano
2012-05-08 20:25 ` Daniel Lezcano
2012-05-08 20:44 ` Kevin Hilman
1 sibling, 2 replies; 8+ messages in thread
From: Daniel Lezcano @ 2012-05-04 17:18 UTC (permalink / raw)
To: linux-arm-kernel
Define a CPU_IDLE section in the makefile, declare the functions in
the header files conforming to the kernel coding rules and remove the
'define's in the C files.
CONFIG_PM is enabled when CPU_IDLE is enabled because the cpuidle drivers
use some functions from the pm subsystem.
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: Jean Pihet <j-pihet@ti.com>
---
arch/arm/mach-omap2/Kconfig | 2 ++
arch/arm/mach-omap2/Makefile | 11 +++++++----
arch/arm/mach-omap2/cpuidle34xx.c | 8 --------
arch/arm/mach-omap2/cpuidle44xx.c | 8 --------
arch/arm/mach-omap2/pm.h | 17 +++++++++++++++--
5 files changed, 24 insertions(+), 22 deletions(-)
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 8141b76..42f6b89 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -34,6 +34,7 @@ config ARCH_OMAP3
select CPU_V7
select USB_ARCH_HAS_EHCI if USB_SUPPORT
select ARCH_HAS_OPP
+ select PM if CPU_IDLE
select PM_OPP if PM
select ARM_CPU_SUSPEND if PM
select MULTI_IRQ_HANDLER
@@ -51,6 +52,7 @@ config ARCH_OMAP4
select PL310_ERRATA_727915
select ARM_ERRATA_720789
select ARCH_HAS_OPP
+ select PM if CPU_IDLE
select PM_OPP if PM
select USB_ARCH_HAS_EHCI if USB_SUPPORT
select ARM_CPU_SUSPEND if PM
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 49f92bc..f46c735 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -64,10 +64,8 @@ endif
ifeq ($(CONFIG_PM),y)
obj-$(CONFIG_ARCH_OMAP2) += pm24xx.o
obj-$(CONFIG_ARCH_OMAP2) += sleep24xx.o
-obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o \
- cpuidle34xx.o
-obj-$(CONFIG_ARCH_OMAP4) += pm44xx.o omap-mpuss-lowpower.o \
- cpuidle44xx.o
+obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o
+obj-$(CONFIG_ARCH_OMAP4) += pm44xx.o omap-mpuss-lowpower.o
obj-$(CONFIG_PM_DEBUG) += pm-debug.o
obj-$(CONFIG_OMAP_SMARTREFLEX) += sr_device.o smartreflex.o
obj-$(CONFIG_OMAP_SMARTREFLEX_CLASS3) += smartreflex-class3.o
@@ -81,6 +79,11 @@ endif
endif
+ifeq ($(CONFIG_CPU_IDLE),y)
+obj-$(CONFIG_ARCH_OMAP3) += cpuidle34xx.o
+obj-$(CONFIG_ARCH_OMAP4) += cpuidle44xx.o
+endif
+
# PRCM
obj-y += prm_common.o
obj-$(CONFIG_ARCH_OMAP2) += prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o
diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c
index 207bc1c..3134452 100644
--- a/arch/arm/mach-omap2/cpuidle34xx.c
+++ b/arch/arm/mach-omap2/cpuidle34xx.c
@@ -36,8 +36,6 @@
#include "control.h"
#include "common.h"
-#ifdef CONFIG_CPU_IDLE
-
/* Mach specific information to be recorded in the C-state driver_data */
struct omap3_idle_statedata {
u32 mpu_state;
@@ -379,9 +377,3 @@ int __init omap3_idle_init(void)
return 0;
}
-#else
-int __init omap3_idle_init(void)
-{
- return 0;
-}
-#endif /* CONFIG_CPU_IDLE */
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c
index be1617c..02d15bb 100644
--- a/arch/arm/mach-omap2/cpuidle44xx.c
+++ b/arch/arm/mach-omap2/cpuidle44xx.c
@@ -22,8 +22,6 @@
#include "pm.h"
#include "prm.h"
-#ifdef CONFIG_CPU_IDLE
-
/* Machine specific information */
struct omap4_idle_statedata {
u32 cpu_state;
@@ -199,9 +197,3 @@ int __init omap4_idle_init(void)
return 0;
}
-#else
-int __init omap4_idle_init(void)
-{
- return 0;
-}
-#endif /* CONFIG_CPU_IDLE */
diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h
index 7856489..ab04d3b 100644
--- a/arch/arm/mach-omap2/pm.h
+++ b/arch/arm/mach-omap2/pm.h
@@ -15,12 +15,25 @@
#include "powerdomain.h"
+#ifdef CONFIG_CPU_IDLE
+extern int __init omap3_idle_init(void);
+extern int __init omap4_idle_init(void);
+#else
+static inline int omap3_idle_init(void)
+{
+ return 0;
+}
+
+static inline int omap4_idle_init(void)
+{
+ return 0;
+}
+#endif
+
extern void *omap3_secure_ram_storage;
extern void omap3_pm_off_mode_enable(int);
extern void omap_sram_idle(void);
extern int omap_set_pwrdm_state(struct powerdomain *pwrdm, u32 state);
-extern int omap3_idle_init(void);
-extern int omap4_idle_init(void);
extern int omap_pm_clkdms_setup(struct clockdomain *clkdm, void *unused);
extern int (*omap_pm_suspend)(void);
--
1.7.5.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 1/2] ARM: OMAP3: cpuidle - check the powerdomain lookup
2012-05-04 17:18 ` [PATCH 1/2] ARM: OMAP3: cpuidle - check the powerdomain lookup Daniel Lezcano
@ 2012-05-04 21:23 ` Kevin Hilman
0 siblings, 0 replies; 8+ messages in thread
From: Kevin Hilman @ 2012-05-04 21:23 UTC (permalink / raw)
To: linux-arm-kernel
Daniel Lezcano <daniel.lezcano@linaro.org> writes:
> At init time, check the powerdomains lookup is successful otherwise
> exit the cpuidle driver init function with -ENODEV like what is done for the
> omap3 cpuidle driver.
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> Reviewed-by: Jean Pihet <j-pihet@ti.com>
Thanks, applying to my for_3.5/cleanup/omap-cpuidle branch.
Kevin
> ---
> arch/arm/mach-omap2/cpuidle34xx.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c
> index f682e17..207bc1c 100644
> --- a/arch/arm/mach-omap2/cpuidle34xx.c
> +++ b/arch/arm/mach-omap2/cpuidle34xx.c
> @@ -363,6 +363,9 @@ int __init omap3_idle_init(void)
> per_pd = pwrdm_lookup("per_pwrdm");
> cam_pd = pwrdm_lookup("cam_pwrdm");
>
> + if (!mpu_pd || !core_pd || !per_pd || !cam_pd)
> + return -ENODEV;
> +
> cpuidle_register_driver(&omap3_idle_driver);
>
> dev = &per_cpu(omap3_idle_dev, smp_processor_id());
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/2] ARM: OMAP3/4: consolidate cpuidle Makefile
2012-05-04 17:18 ` [PATCH 2/2] ARM: OMAP3/4: consolidate cpuidle Makefile Daniel Lezcano
@ 2012-05-08 20:25 ` Daniel Lezcano
2012-05-08 20:45 ` Kevin Hilman
2012-05-08 20:44 ` Kevin Hilman
1 sibling, 1 reply; 8+ messages in thread
From: Daniel Lezcano @ 2012-05-08 20:25 UTC (permalink / raw)
To: linux-arm-kernel
On 05/04/2012 07:18 PM, Daniel Lezcano wrote:
> Define a CPU_IDLE section in the makefile, declare the functions in
> the header files conforming to the kernel coding rules and remove the
> 'define's in the C files.
>
> CONFIG_PM is enabled when CPU_IDLE is enabled because the cpuidle drivers
> use some functions from the pm subsystem.
>
> Signed-off-by: Daniel Lezcano<daniel.lezcano@linaro.org>
> Reviewed-by: Jean Pihet<j-pihet@ti.com>
> ---
Hi Kevin,
you did not apply this patch. Is it something wrong with it ?
Thanks
-- Daniel
--
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs
Follow Linaro:<http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/2] ARM: OMAP3/4: consolidate cpuidle Makefile
2012-05-04 17:18 ` [PATCH 2/2] ARM: OMAP3/4: consolidate cpuidle Makefile Daniel Lezcano
2012-05-08 20:25 ` Daniel Lezcano
@ 2012-05-08 20:44 ` Kevin Hilman
2012-05-08 21:02 ` Daniel Lezcano
1 sibling, 1 reply; 8+ messages in thread
From: Kevin Hilman @ 2012-05-08 20:44 UTC (permalink / raw)
To: linux-arm-kernel
Daniel Lezcano <daniel.lezcano@linaro.org> writes:
> Define a CPU_IDLE section in the makefile, declare the functions in
> the header files conforming to the kernel coding rules and remove the
> 'define's in the C files.
>
> CONFIG_PM is enabled when CPU_IDLE is enabled because the cpuidle drivers
> use some functions from the pm subsystem.
>
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> Reviewed-by: Jean Pihet <j-pihet@ti.com>
The changelog doesn't really answer "why" this change is needed. IOW, I
don't understand from the changelog exactly what problem this patch is
trying to solve.
AFAICT, it's just shuffling around the dependencies, and changes the
omap*_idle_init() calls into inline nops instead of function call nops.
Kevin
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/2] ARM: OMAP3/4: consolidate cpuidle Makefile
2012-05-08 20:25 ` Daniel Lezcano
@ 2012-05-08 20:45 ` Kevin Hilman
0 siblings, 0 replies; 8+ messages in thread
From: Kevin Hilman @ 2012-05-08 20:45 UTC (permalink / raw)
To: linux-arm-kernel
Daniel Lezcano <daniel.lezcano@linaro.org> writes:
> On 05/04/2012 07:18 PM, Daniel Lezcano wrote:
>> Define a CPU_IDLE section in the makefile, declare the functions in
>> the header files conforming to the kernel coding rules and remove the
>> 'define's in the C files.
>>
>> CONFIG_PM is enabled when CPU_IDLE is enabled because the cpuidle drivers
>> use some functions from the pm subsystem.
>>
>> Signed-off-by: Daniel Lezcano<daniel.lezcano@linaro.org>
>> Reviewed-by: Jean Pihet<j-pihet@ti.com>
>> ---
>
> Hi Kevin,
>
> you did not apply this patch. Is it something wrong with it ?
>
oops, the reply was still in my drafts folder... just sent.
Kevin
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/2] ARM: OMAP3/4: consolidate cpuidle Makefile
2012-05-08 20:44 ` Kevin Hilman
@ 2012-05-08 21:02 ` Daniel Lezcano
0 siblings, 0 replies; 8+ messages in thread
From: Daniel Lezcano @ 2012-05-08 21:02 UTC (permalink / raw)
To: linux-arm-kernel
On 05/08/2012 10:44 PM, Kevin Hilman wrote:
> Daniel Lezcano<daniel.lezcano@linaro.org> writes:
>
>> Define a CPU_IDLE section in the makefile, declare the functions in
>> the header files conforming to the kernel coding rules and remove the
>> 'define's in the C files.
>>
>> CONFIG_PM is enabled when CPU_IDLE is enabled because the cpuidle drivers
>> use some functions from the pm subsystem.
>>
>> Signed-off-by: Daniel Lezcano<daniel.lezcano@linaro.org>
>> Reviewed-by: Jean Pihet<j-pihet@ti.com>
>
> The changelog doesn't really answer "why" this change is needed. IOW, I
> don't understand from the changelog exactly what problem this patch is
> trying to solve.
>
> AFAICT, it's just shuffling around the dependencies, and changes the
> omap*_idle_init() calls into inline nops instead of function call nops.
Ok, I will modify the changelog. I'm always bad with the changelogs,
this is something I have to improve :) I'm the first one to be happy
when I find a nice description in the patches log.
Thanks.
-- Daniel
--
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-05-08 21:02 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-04 17:18 [PATCH 0/2] ARM: OMAP3/4: cpuidle - misc fixes Daniel Lezcano
2012-05-04 17:18 ` [PATCH 1/2] ARM: OMAP3: cpuidle - check the powerdomain lookup Daniel Lezcano
2012-05-04 21:23 ` Kevin Hilman
2012-05-04 17:18 ` [PATCH 2/2] ARM: OMAP3/4: consolidate cpuidle Makefile Daniel Lezcano
2012-05-08 20:25 ` Daniel Lezcano
2012-05-08 20:45 ` Kevin Hilman
2012-05-08 20:44 ` Kevin Hilman
2012-05-08 21:02 ` Daniel Lezcano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).