Several targets include I2C in the kernel, making it impossible to install i2c drivers later (since i2c-core won't be built). Adding a new hidden config symbol/feature prevents having to exclude every target with I2C from kmod-i2c-core dependencies.
Signed-off-by: Jonas Gorski <jonas.gorski+open...@gmail.com> --- A backport to backfire will close #9648. include/target.mk | 5 +++++ package/kernel/modules/hwmon.mk | 8 ++++---- package/kernel/modules/i2c.mk | 18 +++++++++--------- package/kernel/modules/other.mk | 2 +- package/kernel/modules/video.mk | 2 +- scripts/metadata.pl | 1 + target/Config.in | 3 +++ 7 files changed, 24 insertions(+), 15 deletions(-) diff --git a/include/target.mk b/include/target.mk index af32309..8e94c03 100644 --- a/include/target.mk +++ b/include/target.mk @@ -183,6 +183,11 @@ ifeq ($(DUMP),1) ifneq ($(CONFIG_VGA_CONSOLE)$(CONFIG_FB),) FEATURES += display endif + ifneq ($(CONFIG_I2C),) + ifneq ($(CONFIG_I2C_CHARDEV),) + FEATURES += i2c + endif + endif # remove duplicates FEATURES:=$(sort $(FEATURES)) diff --git a/package/kernel/modules/hwmon.mk b/package/kernel/modules/hwmon.mk index ebbe7cf..e0db19a 100644 --- a/package/kernel/modules/hwmon.mk +++ b/package/kernel/modules/hwmon.mk @@ -35,7 +35,7 @@ define KernelPackage/hwmon-lm63 KCONFIG:=CONFIG_SENSORS_LM63 FILES:=$(LINUX_DIR)/drivers/hwmon/lm63.ko AUTOLOAD:=$(call AutoLoad,60,lm63) - $(call AddDepends/hwmon,+kmod-i2c-core) + $(call AddDepends/hwmon,+!HAS_I2C_CORE:kmod-i2c-core) endef define KernelPackage/hwmon-lm63/description @@ -50,7 +50,7 @@ define KernelPackage/hwmon-lm75 KCONFIG:=CONFIG_SENSORS_LM75 FILES:=$(LINUX_DIR)/drivers/hwmon/lm75.ko AUTOLOAD:=$(call AutoLoad,60,lm75) - $(call AddDepends/hwmon,+kmod-i2c-core) + $(call AddDepends/hwmon,+!HAS_I2C_CORE:kmod-i2c-core) endef define KernelPackage/hwmon-lm75/description @@ -65,7 +65,7 @@ define KernelPackage/hwmon-lm77 KCONFIG:=CONFIG_SENSORS_LM77 FILES:=$(LINUX_DIR)/drivers/hwmon/lm77.ko AUTOLOAD:=$(call AutoLoad,60,lm77) - $(call AddDepends/hwmon,+kmod-i2c-core) + $(call AddDepends/hwmon,+!HAS_I2C_CORE:kmod-i2c-core) endef define KernelPackage/hwmon-lm77/description @@ -80,7 +80,7 @@ define KernelPackage/hwmon-lm90 KCONFIG:=CONFIG_SENSORS_LM90 FILES:=$(LINUX_DIR)/drivers/hwmon/lm90.ko AUTOLOAD:=$(call AutoLoad,60,lm90) - $(call AddDepends/hwmon,+kmod-i2c-core) + $(call AddDepends/hwmon,+!HAS_I2C_CORE:kmod-i2c-core) endef define KernelPackage/hwmon-lm90/description diff --git a/package/kernel/modules/i2c.mk b/package/kernel/modules/i2c.mk index a88bfa9..95bcc5a 100644 --- a/package/kernel/modules/i2c.mk +++ b/package/kernel/modules/i2c.mk @@ -27,7 +27,7 @@ I2C_CORE_MODULES:= \ define KernelPackage/i2c-core $(call i2c_defaults,$(I2C_CORE_MODULES),51) TITLE:=I2C support - DEPENDS:=@!TARGET_etrax + DEPENDS:=@!HAS_I2C_CORE @!TARGET_etrax endef define KernelPackage/i2c-core/description @@ -43,7 +43,7 @@ I2C_ALGOBIT_MODULES:= \ define KernelPackage/i2c-algo-bit $(call i2c_defaults,$(I2C_ALGOBIT_MODULES),55) TITLE:=I2C bit-banging interfaces - DEPENDS:=kmod-i2c-core + DEPENDS:=!HAS_I2C_CORE:kmod-i2c-core endef define KernelPackage/i2c-algo-bit/description @@ -59,7 +59,7 @@ I2C_ALGOPCA_MODULES:= \ define KernelPackage/i2c-algo-pca $(call i2c_defaults,$(I2C_ALGOPCA_MODULES),55) TITLE:=I2C PCA 9564 interfaces - DEPENDS:=kmod-i2c-core + DEPENDS:=!HAS_I2C_CORE:kmod-i2c-core endef define KernelPackage/i2c-algo-pca/description @@ -75,7 +75,7 @@ I2C_ALGOPCF_MODULES:= \ define KernelPackage/i2c-algo-pcf $(call i2c_defaults,$(I2C_ALGOPCF_MODULES),55) TITLE:=I2C PCF 8584 interfaces - DEPENDS:=kmod-i2c-core + DEPENDS:=!HAS_I2C_CORE:kmod-i2c-core endef define KernelPackage/i2c-algo-pcf/description @@ -143,7 +143,7 @@ OF_I2C_MODULES:=\ define KernelPackage/of-i2c $(call i2c_defaults,$(OF_I2C_MODULES),58) TITLE:=OpenFirmware I2C accessors - DEPENDS:=@TARGET_ppc40x||TARGET_ppc4xx kmod-i2c-core + DEPENDS:=@TARGET_ppc40x||TARGET_ppc4xx !HAS_I2C_CORE:kmod-i2c-core endef define KernelPackage/of-i2c/description @@ -159,7 +159,7 @@ I2C_IBM_IIC_MODULES:=\ define KernelPackage/i2c-ibm-iic $(call i2c_defaults,$(OF_I2C_MODULES),59) TITLE:=IBM PPC 4xx on-chip I2C interface support - DEPENDS:=@TARGET_ppc40x||TARGET_ppc4xx +kmod-i2c-core +kmod-of-i2c + DEPENDS:=@TARGET_ppc40x||TARGET_ppc4xx +!HAS_I2C_CORE:kmod-i2c-core +kmod-of-i2c endef define KernelPackage/i2c-ibm-iic/description @@ -174,7 +174,7 @@ I2C_MV64XXX_MODULES:=\ define KernelPackage/i2c-mv64xxx $(call i2c_defaults,$(I2C_MV64XXX_MODULES),59) TITLE:=Orion Platform I2C interface support - DEPENDS:=@TARGET_kirkwood||TARGET_orion +kmod-i2c-core + DEPENDS:=@TARGET_kirkwood||TARGET_orion +!HAS_I2C_CORE:kmod-i2c-core endef define KernelPackage/i2c-mv64xxx/description @@ -191,7 +191,7 @@ I2C_AT91_MODULES:=\ define KernelPackage/at91-i2c $(call i2c_defaults,$(I2C_AT91_MODULES),55) TITLE:=I2C (TWI) master driver for Atmel AT91 - DEPENDS:=@TARGET_at91 +kmod-i2c-core + DEPENDS:=@TARGET_at91 +!HAS_I2C_CORE:kmod-i2c-core endef define KernelPackage/at91-i2c/description @@ -206,7 +206,7 @@ I2C_OCTEON_MODULES:=\ define KernelPackage/octeon-i2c $(call i2c_defaults,$(I2C_OCTEON_MODULES),59) TITLE:=I2C master driver for Cavium Octeon - DEPENDS:=@TARGET_octeon +kmod-i2c-core + DEPENDS:=@TARGET_octeon +!HAS_I2C_CORE:kmod-i2c-core endef define KernelPackage/octeon-i2c/description diff --git a/package/kernel/modules/other.mk b/package/kernel/modules/other.mk index b6339a6..3baac4d 100644 --- a/package/kernel/modules/other.mk +++ b/package/kernel/modules/other.mk @@ -112,7 +112,7 @@ define KernelPackage/eeprom-at24 SUBMENU:=$(OTHER_MENU) TITLE:=EEPROM AT24 support KCONFIG:=CONFIG_EEPROM_AT24 - DEPENDS:=+kmod-i2c-core + DEPENDS:=+!HAS_I2C_CORE:kmod-i2c-core FILES:=$(LINUX_DIR)/drivers/misc/eeprom/at24.ko AUTOLOAD:=$(call AutoLoad,60,at24) endef diff --git a/package/kernel/modules/video.mk b/package/kernel/modules/video.mk index 7a6eb31..e6d45cc 100644 --- a/package/kernel/modules/video.mk +++ b/package/kernel/modules/video.mk @@ -11,7 +11,7 @@ VIDEO_MENU:=Video Support define KernelPackage/video-core SUBMENU:=$(VIDEO_MENU) TITLE=Video4Linux support - DEPENDS:=@PCI_SUPPORT||USB_SUPPORT +!TARGET_etrax:kmod-i2c-core + DEPENDS:=@PCI_SUPPORT||USB_SUPPORT +!TARGET_etrax&&!HAS_I2C_CORE:kmod-i2c-core KCONFIG:= \ CONFIG_MEDIA_SUPPORT=m \ CONFIG_VIDEO_DEV \ diff --git a/scripts/metadata.pl b/scripts/metadata.pl index 0f4ae9f..86c262b 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -172,6 +172,7 @@ sub target_config_features(@) { /ramdisk/ and $ret .= "\tselect USES_INITRAMFS\n"; /powerpc64/ and $ret .= "\tselect powerpc64\n"; /nommu/ and $ret .= "\tselect NOMMU\n"; + /i2c/ and $ret .= "\tselect HAS_I2C_CORE\n"; } return $ret; } diff --git a/target/Config.in b/target/Config.in index 9e0263e..f25ca43 100644 --- a/target/Config.in +++ b/target/Config.in @@ -63,6 +63,9 @@ config PROFILE_KCONFIG config NOMMU bool +config HAS_I2C_CORE + bool + # Architecture selection config arm -- 1.7.2.5 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel