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: Daniel Lezcano <daniel.lezcano@linaro.org> Reviewed-by: Jean Pihet <j-pihet@ti.com> Reviewed-by: Rajendra Nayak <rnayak@ti.com> Signed-off-by: Kevin Hilman <khilman@ti.com>
This commit is contained in:
		
					parent
					
						
							
								a819c4f16d
							
						
					
				
			
			
				commit
				
					
						164e0cbf60
					
				
			
		
					 5 changed files with 22 additions and 20 deletions
				
			
		|  | @ -35,6 +35,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 | ||||
|  | @ -52,6 +53,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 | ||||
|  |  | |||
|  | @ -66,9 +66,7 @@ ifeq ($(CONFIG_PM),y) | |||
| obj-$(CONFIG_ARCH_OMAP2)		+= pm24xx.o | ||||
| obj-$(CONFIG_ARCH_OMAP2)		+= sleep24xx.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)		+= cpuidle44xx.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 | ||||
|  | @ -82,6 +80,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 | ||||
|  |  | |||
|  | @ -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 */ | ||||
|  |  | |||
|  | @ -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 */ | ||||
|  |  | |||
|  | @ -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); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Daniel Lezcano
				Daniel Lezcano