Re: [PATCHv2] ARM: OMAP: build mach-omap code only if needed

2013-07-04 Thread Tony Lindgren
* Tony Lindgren t...@atomide.com [130625 00:34]:
 * Arnd Bergmann a...@arndb.de [130624 07:25]:
  If we build a kernel with CONFIG_ARCH_OMAP2PLUS enabled but all of the
  individual SoCs disabled, we run into a large number of link errors
  because if incorrect dependencies:
  
  arch/arm/mach-omap2/built-in.o: In function `_add_initiator_dep':
  arch/arm/mach-omap2/omap_hwmod.c:691: undefined reference to 
  `clkdm_add_sleepdep' arch/arm/mach-omap2/built-in.o: In function 
  `_del_initiator_dep':
  arch/arm/mach-omap2/omap_hwmod.c:720: undefined reference to 
  `clkdm_del_sleepdep' arch/arm/mach-omap2/built-in.o: In function `_enable':
  arch/arm/mach-omap2/omap_hwmod.c:2145: undefined reference to 
  `clkdm_in_hwsup'
  arch/arm/mach-omap2/omap_hwmod.c:2147: undefined reference to 
  `clkdm_hwmod_enable'
  arch/arm/mach-omap2/omap_hwmod.c:2191: undefined reference to 
  `clkdm_hwmod_disable'
  arch/arm/mach-omap2/omap_hwmod.c:2146: undefined reference to 
  `clkdm_missing_idle_reporting' arch/arm/mach-omap2/built-in.o: In function 
  `_idle':
  arch/arm/mach-omap2/omap_hwmod.c:2235: undefined reference to 
  `clkdm_hwmod_disable' arch/arm/mach-omap2/built-in.o: In function 
  `_shutdown':
  arch/arm/mach-omap2/omap_hwmod.c:2338: undefined reference to 
  `clkdm_hwmod_disable' arch/arm/mach-omap2/built-in.o: In function 
  `omap_hwmod_get_context_loss_count':
  arch/arm/mach-omap2/omap_hwmod.c:4071: undefined reference to 
  `pwrdm_get_context_loss_count' arch/arm/mach-omap2/built-in.o: In function 
  `omap_pm_clkdms_setup':
  arch/arm/mach-omap2/pm.c:114: undefined reference to `clkdm_allow_idle'
  arch/arm/mach-omap2/pm.c:117: undefined reference to `clkdm_sleep' 
  arch/arm/mach-omap2/built-in.o: In function `omap2_common_pm_late_init':
  arch/arm/mach-omap2/pm.c:294: undefined reference to 
  `omap_voltage_late_init' arch/arm/mach-omap2/built-in.o: In function 
  `omap2_gpio_dev_init':
  arch/arm/mach-omap2/gpio.c:133: undefined reference to 
  `pwrdm_can_ever_lose_context'
  
  We can avoid this if we make CONFIG_ARCH_OMAP2PLUS a silent option that
  gets enabled any time that one of the SoC versions is enabled.
 
 /me hopes this does the trick finally ;)
 
 I could not apply this to anything I tried though..
 Which branch is this against?

Ping, do you have updated patche(s) available as we discussed on IRC?

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCHv2] ARM: OMAP: build mach-omap code only if needed

2013-06-25 Thread Tony Lindgren
* Arnd Bergmann a...@arndb.de [130624 07:25]:
 If we build a kernel with CONFIG_ARCH_OMAP2PLUS enabled but all of the
 individual SoCs disabled, we run into a large number of link errors
 because if incorrect dependencies:
 
 arch/arm/mach-omap2/built-in.o: In function `_add_initiator_dep':
 arch/arm/mach-omap2/omap_hwmod.c:691: undefined reference to 
 `clkdm_add_sleepdep' arch/arm/mach-omap2/built-in.o: In function 
 `_del_initiator_dep':
 arch/arm/mach-omap2/omap_hwmod.c:720: undefined reference to 
 `clkdm_del_sleepdep' arch/arm/mach-omap2/built-in.o: In function `_enable':
 arch/arm/mach-omap2/omap_hwmod.c:2145: undefined reference to `clkdm_in_hwsup'
 arch/arm/mach-omap2/omap_hwmod.c:2147: undefined reference to 
 `clkdm_hwmod_enable'
 arch/arm/mach-omap2/omap_hwmod.c:2191: undefined reference to 
 `clkdm_hwmod_disable'
 arch/arm/mach-omap2/omap_hwmod.c:2146: undefined reference to 
 `clkdm_missing_idle_reporting' arch/arm/mach-omap2/built-in.o: In function 
 `_idle':
 arch/arm/mach-omap2/omap_hwmod.c:2235: undefined reference to 
 `clkdm_hwmod_disable' arch/arm/mach-omap2/built-in.o: In function `_shutdown':
 arch/arm/mach-omap2/omap_hwmod.c:2338: undefined reference to 
 `clkdm_hwmod_disable' arch/arm/mach-omap2/built-in.o: In function 
 `omap_hwmod_get_context_loss_count':
 arch/arm/mach-omap2/omap_hwmod.c:4071: undefined reference to 
 `pwrdm_get_context_loss_count' arch/arm/mach-omap2/built-in.o: In function 
 `omap_pm_clkdms_setup':
 arch/arm/mach-omap2/pm.c:114: undefined reference to `clkdm_allow_idle'
 arch/arm/mach-omap2/pm.c:117: undefined reference to `clkdm_sleep' 
 arch/arm/mach-omap2/built-in.o: In function `omap2_common_pm_late_init':
 arch/arm/mach-omap2/pm.c:294: undefined reference to `omap_voltage_late_init' 
 arch/arm/mach-omap2/built-in.o: In function `omap2_gpio_dev_init':
 arch/arm/mach-omap2/gpio.c:133: undefined reference to 
 `pwrdm_can_ever_lose_context'
 
 We can avoid this if we make CONFIG_ARCH_OMAP2PLUS a silent option that
 gets enabled any time that one of the SoC versions is enabled.

/me hopes this does the trick finally ;)

I could not apply this to anything I tried though..
Which branch is this against?

Regards,

Tony

 
 Signed-off-by: Arnd Bergmann a...@arndb.de
 Cc: Tony Lindgren t...@atomide.com
 
 diff --git a/arch/arm/configs/omap2plus_defconfig 
 b/arch/arm/configs/omap2plus_defconfig
 index abbe319..197a0bb 100644
 --- a/arch/arm/configs/omap2plus_defconfig
 +++ b/arch/arm/configs/omap2plus_defconfig
 @@ -22,6 +22,10 @@ CONFIG_MODULE_SRCVERSION_ALL=y
  # CONFIG_BLK_DEV_BSG is not set
  CONFIG_ARCH_MULTI_V6=y
  CONFIG_ARCH_OMAP2PLUS=y
 +CONFIG_ARCH_OMAP2=y
 +CONFIG_ARCH_OMAP3=y
 +CONFIG_ARCH_OMAP4=y
 +CONFIG_SOC_AM33XX=y
  CONFIG_OMAP_RESET_CLOCKS=y
  CONFIG_OMAP_MUX_DEBUG=y
  CONFIG_ARCH_VEXPRESS_CA9X4=y
 diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
 index 1bfe9ee..a07cdc9 100644
 --- a/arch/arm/mach-omap2/Kconfig
 +++ b/arch/arm/mach-omap2/Kconfig
 @@ -1,61 +1,10 @@
  config ARCH_OMAP
   bool
  
 -config ARCH_OMAP2PLUS
 - bool TI OMAP2/3/4/5 SoCs with device tree support if (ARCH_MULTI_V6 
 || ARCH_MULTI_V7)
 - select ARCH_HAS_CPUFREQ
 - select ARCH_HAS_HOLES_MEMORYMODEL
 - select ARCH_OMAP
 - select ARCH_REQUIRE_GPIOLIB
 - select CLKDEV_LOOKUP
 - select CLKSRC_MMIO
 - select GENERIC_CLOCKEVENTS
 - select GENERIC_IRQ_CHIP
 - select HAVE_CLK
 - select OMAP_DM_TIMER
 - select PINCTRL
 - select PROC_DEVICETREE if PROC_FS
 - select SOC_BUS
 - select SPARSE_IRQ
 - select USE_OF
 - help
 -   Systems based on OMAP2, OMAP3, OMAP4 or OMAP5
 -
 -
 -if ARCH_OMAP2PLUS
 -
 -menu TI OMAP2/3/4 Specific Features
 -
 -config ARCH_OMAP2PLUS_TYPICAL
 - bool Typical OMAP configuration
 - default y
 - select AEABI
 - select HIGHMEM
 - select I2C
 - select I2C_OMAP
 - select MENELAUS if ARCH_OMAP2
 - select NEON if ARCH_OMAP3 || ARCH_OMAP4 || SOC_OMAP5
 - select PM_RUNTIME
 - select REGULATOR
 - select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4
 - select TWL4030_POWER if ARCH_OMAP3 || ARCH_OMAP4
 - select VFP
 - help
 -   Compile a kernel suitable for booting most boards
 -
 -config SOC_HAS_OMAP2_SDRC
 - bool OMAP2 SDRAM Controller support
 -
 -config SOC_HAS_REALTIME_COUNTER
 - bool Real time free running counter
 - depends on SOC_OMAP5
 - default y
 -
  config ARCH_OMAP2
   bool TI OMAP2
 - depends on ARCH_OMAP2PLUS
   depends on ARCH_MULTI_V6
 - default y
 + select ARCH_OMAP2PLUS
   select CPU_V6
   select MULTI_IRQ_HANDLER
   select SOC_HAS_OMAP2_SDRC
 @@ -63,9 +12,8 @@ config ARCH_OMAP2
  
  config ARCH_OMAP3
   bool TI OMAP3
 - depends on ARCH_OMAP2PLUS
   depends on ARCH_MULTI_V7
 - default y
 + select ARCH_OMAP2PLUS
   select ARCH_HAS_OPP
   select ARM_CPU_SUSPEND if PM
   select CPU_V7
 @@ -79,9 +27,8 @@ config ARCH_OMAP3
  
  

[PATCHv2] ARM: OMAP: build mach-omap code only if needed

2013-06-24 Thread Arnd Bergmann
If we build a kernel with CONFIG_ARCH_OMAP2PLUS enabled but all of the
individual SoCs disabled, we run into a large number of link errors
because if incorrect dependencies:

arch/arm/mach-omap2/built-in.o: In function `_add_initiator_dep':
arch/arm/mach-omap2/omap_hwmod.c:691: undefined reference to 
`clkdm_add_sleepdep' arch/arm/mach-omap2/built-in.o: In function 
`_del_initiator_dep':
arch/arm/mach-omap2/omap_hwmod.c:720: undefined reference to 
`clkdm_del_sleepdep' arch/arm/mach-omap2/built-in.o: In function `_enable':
arch/arm/mach-omap2/omap_hwmod.c:2145: undefined reference to `clkdm_in_hwsup'
arch/arm/mach-omap2/omap_hwmod.c:2147: undefined reference to 
`clkdm_hwmod_enable'
arch/arm/mach-omap2/omap_hwmod.c:2191: undefined reference to 
`clkdm_hwmod_disable'
arch/arm/mach-omap2/omap_hwmod.c:2146: undefined reference to 
`clkdm_missing_idle_reporting' arch/arm/mach-omap2/built-in.o: In function 
`_idle':
arch/arm/mach-omap2/omap_hwmod.c:2235: undefined reference to 
`clkdm_hwmod_disable' arch/arm/mach-omap2/built-in.o: In function `_shutdown':
arch/arm/mach-omap2/omap_hwmod.c:2338: undefined reference to 
`clkdm_hwmod_disable' arch/arm/mach-omap2/built-in.o: In function 
`omap_hwmod_get_context_loss_count':
arch/arm/mach-omap2/omap_hwmod.c:4071: undefined reference to 
`pwrdm_get_context_loss_count' arch/arm/mach-omap2/built-in.o: In function 
`omap_pm_clkdms_setup':
arch/arm/mach-omap2/pm.c:114: undefined reference to `clkdm_allow_idle'
arch/arm/mach-omap2/pm.c:117: undefined reference to `clkdm_sleep' 
arch/arm/mach-omap2/built-in.o: In function `omap2_common_pm_late_init':
arch/arm/mach-omap2/pm.c:294: undefined reference to `omap_voltage_late_init' 
arch/arm/mach-omap2/built-in.o: In function `omap2_gpio_dev_init':
arch/arm/mach-omap2/gpio.c:133: undefined reference to 
`pwrdm_can_ever_lose_context'

We can avoid this if we make CONFIG_ARCH_OMAP2PLUS a silent option that
gets enabled any time that one of the SoC versions is enabled.

Signed-off-by: Arnd Bergmann a...@arndb.de
Cc: Tony Lindgren t...@atomide.com

diff --git a/arch/arm/configs/omap2plus_defconfig 
b/arch/arm/configs/omap2plus_defconfig
index abbe319..197a0bb 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -22,6 +22,10 @@ CONFIG_MODULE_SRCVERSION_ALL=y
 # CONFIG_BLK_DEV_BSG is not set
 CONFIG_ARCH_MULTI_V6=y
 CONFIG_ARCH_OMAP2PLUS=y
+CONFIG_ARCH_OMAP2=y
+CONFIG_ARCH_OMAP3=y
+CONFIG_ARCH_OMAP4=y
+CONFIG_SOC_AM33XX=y
 CONFIG_OMAP_RESET_CLOCKS=y
 CONFIG_OMAP_MUX_DEBUG=y
 CONFIG_ARCH_VEXPRESS_CA9X4=y
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 1bfe9ee..a07cdc9 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -1,61 +1,10 @@
 config ARCH_OMAP
bool
 
-config ARCH_OMAP2PLUS
-   bool TI OMAP2/3/4/5 SoCs with device tree support if (ARCH_MULTI_V6 
|| ARCH_MULTI_V7)
-   select ARCH_HAS_CPUFREQ
-   select ARCH_HAS_HOLES_MEMORYMODEL
-   select ARCH_OMAP
-   select ARCH_REQUIRE_GPIOLIB
-   select CLKDEV_LOOKUP
-   select CLKSRC_MMIO
-   select GENERIC_CLOCKEVENTS
-   select GENERIC_IRQ_CHIP
-   select HAVE_CLK
-   select OMAP_DM_TIMER
-   select PINCTRL
-   select PROC_DEVICETREE if PROC_FS
-   select SOC_BUS
-   select SPARSE_IRQ
-   select USE_OF
-   help
- Systems based on OMAP2, OMAP3, OMAP4 or OMAP5
-
-
-if ARCH_OMAP2PLUS
-
-menu TI OMAP2/3/4 Specific Features
-
-config ARCH_OMAP2PLUS_TYPICAL
-   bool Typical OMAP configuration
-   default y
-   select AEABI
-   select HIGHMEM
-   select I2C
-   select I2C_OMAP
-   select MENELAUS if ARCH_OMAP2
-   select NEON if ARCH_OMAP3 || ARCH_OMAP4 || SOC_OMAP5
-   select PM_RUNTIME
-   select REGULATOR
-   select TWL4030_CORE if ARCH_OMAP3 || ARCH_OMAP4
-   select TWL4030_POWER if ARCH_OMAP3 || ARCH_OMAP4
-   select VFP
-   help
- Compile a kernel suitable for booting most boards
-
-config SOC_HAS_OMAP2_SDRC
-   bool OMAP2 SDRAM Controller support
-
-config SOC_HAS_REALTIME_COUNTER
-   bool Real time free running counter
-   depends on SOC_OMAP5
-   default y
-
 config ARCH_OMAP2
bool TI OMAP2
-   depends on ARCH_OMAP2PLUS
depends on ARCH_MULTI_V6
-   default y
+   select ARCH_OMAP2PLUS
select CPU_V6
select MULTI_IRQ_HANDLER
select SOC_HAS_OMAP2_SDRC
@@ -63,9 +12,8 @@ config ARCH_OMAP2
 
 config ARCH_OMAP3
bool TI OMAP3
-   depends on ARCH_OMAP2PLUS
depends on ARCH_MULTI_V7
-   default y
+   select ARCH_OMAP2PLUS
select ARCH_HAS_OPP
select ARM_CPU_SUSPEND if PM
select CPU_V7
@@ -79,9 +27,8 @@ config ARCH_OMAP3
 
 config ARCH_OMAP4
bool TI OMAP4
-   default y
-   depends on ARCH_OMAP2PLUS
depends on ARCH_MULTI_V7
+   select ARCH_OMAP2PLUS
select ARCH_HAS_OPP
select