kernel: move regmap bloat out of the kernel image if it is only being used in modules

SVN-Revision: 34999
owl
Felix Fietkau 2013-01-03 18:39:50 +00:00
parent 1dada293bf
commit 96f3911981
4 changed files with 103 additions and 3 deletions

View File

@ -698,12 +698,15 @@ $(eval $(call KernelPackage,acpi-button))
define KernelPackage/regmap
SUBMENU:=$(OTHER_MENU)
TITLE:=Generic register map support
DEPENDS:=+kmod-lib-lzo
KCONFIG:=CONFIG_REGMAP=y \
CONFIG_REGMAP_SPI \
CONFIG_REGMAP_I2C
FILES:=$(LINUX_DIR)/drivers/base/regmap/regmap-i2c.ko \
FILES:= \
$(LINUX_DIR)/drivers/base/regmap/regmap.ko \
$(LINUX_DIR)/drivers/base/regmap/regmap-i2c.ko \
$(LINUX_DIR)/drivers/base/regmap/regmap-spi.ko
AUTOLOAD:=$(call AutoLoad,10,regmap-i2c regmap-spi)
AUTOLOAD:=$(call AutoLoad,10,regmap regmap-i2c regmap-spi)
endef
define KernelPackage/regmap/description

View File

@ -0,0 +1,21 @@
--- a/drivers/base/regmap/Kconfig
+++ b/drivers/base/regmap/Kconfig
@@ -3,15 +3,16 @@
# subsystems should select the appropriate symbols.
config REGMAP
- default y if (REGMAP_I2C || REGMAP_SPI)
select LZO_COMPRESS
select LZO_DECOMPRESS
- bool
+ tristate
config REGMAP_I2C
+ select REGMAP
tristate
config REGMAP_SPI
+ select REGMAP
tristate
config REGMAP_IRQ

View File

@ -0,0 +1,37 @@
--- a/drivers/base/regmap/Kconfig
+++ b/drivers/base/regmap/Kconfig
@@ -3,19 +3,21 @@
# subsystems should select the appropriate symbols.
config REGMAP
- default y if (REGMAP_I2C || REGMAP_SPI)
select LZO_COMPRESS
select LZO_DECOMPRESS
select IRQ_DOMAIN if REGMAP_IRQ
- bool
+ tristate
config REGMAP_I2C
+ select REGMAP
tristate
config REGMAP_SPI
+ select REGMAP
tristate
config REGMAP_MMIO
+ select REGMAP
tristate
config REGMAP_IRQ
--- a/include/linux/regmap.h
+++ b/include/linux/regmap.h
@@ -43,7 +43,7 @@ struct reg_default {
unsigned int def;
};
-#ifdef CONFIG_REGMAP
+#if IS_ENABLED(CONFIG_REGMAP)
enum regmap_endian {
/* Unspecified -> 0 -> Backwards compatible default */

View File

@ -0,0 +1,39 @@
--- a/drivers/base/regmap/Kconfig
+++ b/drivers/base/regmap/Kconfig
@@ -3,20 +3,23 @@
# subsystems should select the appropriate symbols.
config REGMAP
- default y if (REGMAP_I2C || REGMAP_SPI || REGMAP_MMIO || REGMAP_IRQ)
select LZO_COMPRESS
select LZO_DECOMPRESS
select IRQ_DOMAIN if REGMAP_IRQ
- bool
+ tristate
config REGMAP_I2C
+ select REGMAP
tristate
config REGMAP_SPI
+ select REGMAP
tristate
config REGMAP_MMIO
+ select REGMAP
tristate
config REGMAP_IRQ
+ select REGMAP
bool
--- a/include/linux/regmap.h
+++ b/include/linux/regmap.h
@@ -43,7 +43,7 @@ struct reg_default {
unsigned int def;
};
-#ifdef CONFIG_REGMAP
+#if IS_ENABLED(CONFIG_REGMAP)
enum regmap_endian {
/* Unspecified -> 0 -> Backwards compatible default */