Prechádzať zdrojové kódy

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.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Arnd Bergmann 11 rokov pred
rodič
commit
b33cdd283b

+ 2 - 0
arch/arm/mach-vexpress/Kconfig

@@ -18,6 +18,8 @@ config ARCH_VEXPRESS
 	select POWER_SUPPLY
 	select POWER_SUPPLY
 	select REGULATOR_FIXED_VOLTAGE if REGULATOR
 	select REGULATOR_FIXED_VOLTAGE if REGULATOR
 	select VEXPRESS_CONFIG
 	select VEXPRESS_CONFIG
+	select VEXPRESS_SYSCFG
+	select MFD_VEXPRESS_SYSREG
 	help
 	help
 	  This option enables support for systems using Cortex processor based
 	  This option enables support for systems using Cortex processor based
 	  ARM core and logic (FPGA) tiles on the Versatile Express motherboard,
 	  ARM core and logic (FPGA) tiles on the Versatile Express motherboard,

+ 1 - 0
drivers/bus/Kconfig

@@ -46,6 +46,7 @@ config VEXPRESS_CONFIG
 	bool "Versatile Express configuration bus"
 	bool "Versatile Express configuration bus"
 	default y if ARCH_VEXPRESS
 	default y if ARCH_VEXPRESS
 	depends on ARM || ARM64
 	depends on ARM || ARM64
+	depends on OF
 	select REGMAP
 	select REGMAP
 	help
 	help
 	  Platform configuration infrastructure for the ARM Ltd.
 	  Platform configuration infrastructure for the ARM Ltd.

+ 1 - 1
drivers/bus/vexpress-config.c

@@ -118,7 +118,7 @@ struct regmap *devm_regmap_init_vexpress_config(struct device *dev)
 
 
 	return regmap;
 	return regmap;
 }
 }
-
+EXPORT_SYMBOL_GPL(devm_regmap_init_vexpress_config);
 
 
 struct device *vexpress_config_bridge_register(struct device *parent,
 struct device *vexpress_config_bridge_register(struct device *parent,
 		struct vexpress_config_bridge_ops *ops, void *context)
 		struct vexpress_config_bridge_ops *ops, void *context)

+ 1 - 1
drivers/clocksource/Kconfig

@@ -194,7 +194,7 @@ config CLKSRC_QCOM
 
 
 config CLKSRC_VERSATILE
 config CLKSRC_VERSATILE
 	bool "ARM Versatile (Express) reference platforms clock source"
 	bool "ARM Versatile (Express) reference platforms clock source"
-	depends on GENERIC_SCHED_CLOCK
+	depends on GENERIC_SCHED_CLOCK && !ARCH_USES_GETTIMEOFFSET
 	select CLKSRC_OF
 	select CLKSRC_OF
 	default y if MFD_VEXPRESS_SYSREG
 	default y if MFD_VEXPRESS_SYSREG
 	help
 	help

+ 1 - 1
drivers/mfd/Kconfig

@@ -1229,7 +1229,7 @@ endmenu
 
 
 config MFD_VEXPRESS_SYSREG
 config MFD_VEXPRESS_SYSREG
 	bool "Versatile Express System Registers"
 	bool "Versatile Express System Registers"
-	depends on VEXPRESS_CONFIG
+	depends on VEXPRESS_CONFIG && GPIOLIB
 	default y
 	default y
 	select CLKSRC_MMIO
 	select CLKSRC_MMIO
 	select GPIO_GENERIC_PLATFORM
 	select GPIO_GENERIC_PLATFORM