Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 164e0cbf authored by Daniel Lezcano's avatar Daniel Lezcano Committed by Kevin Hilman
Browse files

ARM: OMAP3/4: consolidate cpuidle Makefile



The current Makefile compiles the cpuidle34xx.c and cpuidle44xx.c files
even if the cpuidle option is not set in the kernel.

This patch fixes this by creating a section in the Makefile where these
files are compiled only if the CONFIG_CPU_IDLE option is set.

This modification breaks an implicit dependency between CPU_IDLE and PM as
they belong to the same block in the Makefile. This is fixed in the Kconfig
by selecting explicitely PM is CPU_IDLE is set.

The linux coding style recommend to use no-op functions in the headers
when the subsystem is disabled instead of adding big section in C files.

This patch fix this also.

Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: default avatarJean Pihet <j-pihet@ti.com>
Reviewed-by: default avatarRajendra Nayak <rnayak@ti.com>
Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
parent a819c4f1
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -35,6 +35,7 @@ config ARCH_OMAP3
	select CPU_V7
	select CPU_V7
	select USB_ARCH_HAS_EHCI if USB_SUPPORT
	select USB_ARCH_HAS_EHCI if USB_SUPPORT
	select ARCH_HAS_OPP
	select ARCH_HAS_OPP
	select PM if CPU_IDLE
	select PM_OPP if PM
	select PM_OPP if PM
	select ARM_CPU_SUSPEND if PM
	select ARM_CPU_SUSPEND if PM
	select MULTI_IRQ_HANDLER
	select MULTI_IRQ_HANDLER
@@ -52,6 +53,7 @@ config ARCH_OMAP4
	select PL310_ERRATA_727915
	select PL310_ERRATA_727915
	select ARM_ERRATA_720789
	select ARM_ERRATA_720789
	select ARCH_HAS_OPP
	select ARCH_HAS_OPP
	select PM if CPU_IDLE
	select PM_OPP if PM
	select PM_OPP if PM
	select USB_ARCH_HAS_EHCI if USB_SUPPORT
	select USB_ARCH_HAS_EHCI if USB_SUPPORT
	select ARM_CPU_SUSPEND if PM
	select ARM_CPU_SUSPEND if PM
+5 −2
Original line number Original line Diff line number Diff line
@@ -66,9 +66,7 @@ ifeq ($(CONFIG_PM),y)
obj-$(CONFIG_ARCH_OMAP2)		+= pm24xx.o
obj-$(CONFIG_ARCH_OMAP2)		+= pm24xx.o
obj-$(CONFIG_ARCH_OMAP2)		+= sleep24xx.o
obj-$(CONFIG_ARCH_OMAP2)		+= sleep24xx.o
obj-$(CONFIG_ARCH_OMAP3)		+= pm34xx.o sleep34xx.o
obj-$(CONFIG_ARCH_OMAP3)		+= pm34xx.o sleep34xx.o
obj-$(CONFIG_ARCH_OMAP3)		+= cpuidle34xx.o
obj-$(CONFIG_ARCH_OMAP4)		+= pm44xx.o omap-mpuss-lowpower.o
obj-$(CONFIG_ARCH_OMAP4)		+= pm44xx.o omap-mpuss-lowpower.o
obj-$(CONFIG_ARCH_OMAP4)		+= cpuidle44xx.o
obj-$(CONFIG_PM_DEBUG)			+= pm-debug.o
obj-$(CONFIG_PM_DEBUG)			+= pm-debug.o
obj-$(CONFIG_OMAP_SMARTREFLEX)          += sr_device.o smartreflex.o
obj-$(CONFIG_OMAP_SMARTREFLEX)          += sr_device.o smartreflex.o
obj-$(CONFIG_OMAP_SMARTREFLEX_CLASS3)	+= smartreflex-class3.o
obj-$(CONFIG_OMAP_SMARTREFLEX_CLASS3)	+= smartreflex-class3.o
@@ -82,6 +80,11 @@ endif


endif
endif


ifeq ($(CONFIG_CPU_IDLE),y)
obj-$(CONFIG_ARCH_OMAP3)                += cpuidle34xx.o
obj-$(CONFIG_ARCH_OMAP4)                += cpuidle44xx.o
endif

# PRCM
# PRCM
obj-y					+= prm_common.o
obj-y					+= prm_common.o
obj-$(CONFIG_ARCH_OMAP2)		+= prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o
obj-$(CONFIG_ARCH_OMAP2)		+= prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o
+0 −8
Original line number Original line Diff line number Diff line
@@ -36,8 +36,6 @@
#include "control.h"
#include "control.h"
#include "common.h"
#include "common.h"


#ifdef CONFIG_CPU_IDLE

/* Mach specific information to be recorded in the C-state driver_data */
/* Mach specific information to be recorded in the C-state driver_data */
struct omap3_idle_statedata {
struct omap3_idle_statedata {
	u32 mpu_state;
	u32 mpu_state;
@@ -379,9 +377,3 @@ int __init omap3_idle_init(void)


	return 0;
	return 0;
}
}
#else
int __init omap3_idle_init(void)
{
	return 0;
}
#endif /* CONFIG_CPU_IDLE */
+0 −8
Original line number Original line Diff line number Diff line
@@ -22,8 +22,6 @@
#include "pm.h"
#include "pm.h"
#include "prm.h"
#include "prm.h"


#ifdef CONFIG_CPU_IDLE

/* Machine specific information */
/* Machine specific information */
struct omap4_idle_statedata {
struct omap4_idle_statedata {
	u32 cpu_state;
	u32 cpu_state;
@@ -199,9 +197,3 @@ int __init omap4_idle_init(void)


	return 0;
	return 0;
}
}
#else
int __init omap4_idle_init(void)
{
	return 0;
}
#endif /* CONFIG_CPU_IDLE */
+15 −2
Original line number Original line Diff line number Diff line
@@ -15,12 +15,25 @@


#include "powerdomain.h"
#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_secure_ram_storage;
extern void omap3_pm_off_mode_enable(int);
extern void omap3_pm_off_mode_enable(int);
extern void omap_sram_idle(void);
extern void omap_sram_idle(void);
extern int omap_set_pwrdm_state(struct powerdomain *pwrdm, u32 state);
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_clkdms_setup(struct clockdomain *clkdm, void *unused);
extern int (*omap_pm_suspend)(void);
extern int (*omap_pm_suspend)(void);