Skip to contentSkip to conversation

ARM: vexpress: refine dependencies for new code

PATCH In review Arnd Bergmann 2 participants 2 messages May 26, 2014 – May 27, 2014

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: vexpress: refine dependencies for new code

The versatile express changes for 3.16 introduced a number of build regressions for randconfig kernels by not tracking dependencies between the components right.

This patch tries to rectify that:

* the mach-vexpress code cannot link without the syscfg driver, which in turn needs MFD_VEXPRESS_SYSREG
* various drivers call devm_regmap_init_vexpress_config(), which has to be exported so it can be used by loadable modules
* the configuration bus uses OF DT helper functions that are not available to platforms disable CONFIG_OF
* The sysreg driver exports GPIOs through gpiolib, which can be disabled on some platforms.
* The clocksource code cannot be built on platforms that don't use modern timekeeping but rely on gettimeoffset.

arch/arm/mach-vexpress/Kconfig +2 -0
index e0726e4..2cc994e 100644
@@ -18,6 +18,8 @@ menuconfig ARCH_VEXPRESS
 	select POWER_SUPPLY
 	select REGULATOR_FIXED_VOLTAGE if REGULATOR
 	select VEXPRESS_CONFIG
+	select VEXPRESS_SYSCFG
+	select MFD_VEXPRESS_SYSREG
 	help
 	  This option enables support for systems using Cortex processor based
 	  ARM core and logic (FPGA) tiles on the Versatile Express motherboard,
drivers/bus/Kconfig +1 -0
index 827f8a5..1f37d98 100644
@@ -54,6 +54,7 @@ config VEXPRESS_CONFIG
 	bool "Versatile Express configuration bus"
 	default y if ARCH_VEXPRESS
 	depends on ARM || ARM64
+	depends on OF
 	select REGMAP
 	help
 	  Platform configuration infrastructure for the ARM Ltd.
drivers/bus/vexpress-config.c +1 -1
index 27a07df..a64763b 100644
@@ -118,7 +118,7 @@ struct regmap *devm_regmap_init_vexpress_config(struct device *dev)
 
 	return regmap;
 }
-
+EXPORT_SYMBOL_GPL(devm_regmap_init_vexpress_config);
 
 struct device *vexpress_config_bridge_register(struct device *parent,
 		struct vexpress_config_bridge_ops *ops, void *context)
drivers/clocksource/Kconfig +1 -1
index 2c27b02..43f1acf 100644
@@ -194,7 +194,7 @@ config CLKSRC_QCOM
 
 config CLKSRC_VERSATILE
 	bool "ARM Versatile (Express) reference platforms clock source"
-	depends on GENERIC_SCHED_CLOCK
+	depends on GENERIC_SCHED_CLOCK && !ARCH_USES_GETTIMEOFFSET
 	select CLKSRC_OF
 	default y if MFD_VEXPRESS_SYSREG
 	help
drivers/mfd/Kconfig +1 -1
index a3987af..6cc4b6a 100644
@@ -1261,7 +1261,7 @@ endmenu
 
 config MFD_VEXPRESS_SYSREG
 	bool "Versatile Express System Registers"
-	depends on VEXPRESS_CONFIG
+	depends on VEXPRESS_CONFIG && GPIOLIB
 	default y
 	select CLKSRC_MMIO
 	select GPIO_GENERIC_PLATFORM
Acked-by on v1 1/1
#1 lore raw
Quoted 6 lines

The versatile express changes for 3.16 introduced a number of build regressions for randconfig kernels by not tracking dependencies between the components right.

This patch tries to rectify that:

Quoted 10 lines

* the mach-vexpress code cannot link without the syscfg driver, which in turn needs MFD_VEXPRESS_SYSREG
* various drivers call devm_regmap_init_vexpress_config(), which has to be exported so it can be used by loadable modules
* the configuration bus uses OF DT helper functions that are not available to platforms disable CONFIG_OF
* The sysreg driver exports GPIOs through gpiolib, which can be disabled on some platforms.
* The clocksource code cannot be built on platforms that don't use modern timekeeping but rely on gettimeoffset.

Where's the diff?

Quoted 1 line

[...]

drivers/mfd/Kconfig

Quoted 1 line
drivers/mfd/Kconfig +0 -0

For the MFD part:

This patch has a high chance of creating conflicts. Can someone apply this to a branch, tag it and sent out a pull-request to the other maintainers please?

Signature · 4 lines
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog