summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2013-01-03 18:39:50 +0000
committerFelix Fietkau <nbd@openwrt.org>2013-01-03 18:39:50 +0000
commit96f39119815028073583e4fca3a9c5fe9141e998 (patch)
tree5866a548f4027c52259bc4531d316555949e5bc9
parent1dada293bfad5319856e3887aeb1e5d0c184367b (diff)
downloadmtk-20170518-96f39119815028073583e4fca3a9c5fe9141e998.zip
mtk-20170518-96f39119815028073583e4fca3a9c5fe9141e998.tar.gz
mtk-20170518-96f39119815028073583e4fca3a9c5fe9141e998.tar.bz2
kernel: move regmap bloat out of the kernel image if it is only being used in modules
SVN-Revision: 34999
-rw-r--r--package/kernel/modules/other.mk9
-rw-r--r--target/linux/generic/patches-3.3/270-regmap_dynamic.patch21
-rw-r--r--target/linux/generic/patches-3.6/270-regmap_dynamic.patch37
-rw-r--r--target/linux/generic/patches-3.7/259-regmap_dynamic.patch39
4 files changed, 103 insertions, 3 deletions
diff --git a/package/kernel/modules/other.mk b/package/kernel/modules/other.mk
index ed72f52..2374d19 100644
--- a/package/kernel/modules/other.mk
+++ b/package/kernel/modules/other.mk
@@ -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 \
- $(LINUX_DIR)/drivers/base/regmap/regmap-spi.ko
- AUTOLOAD:=$(call AutoLoad,10,regmap-i2c regmap-spi)
+ 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 regmap-i2c regmap-spi)
endef
define KernelPackage/regmap/description
diff --git a/target/linux/generic/patches-3.3/270-regmap_dynamic.patch b/target/linux/generic/patches-3.3/270-regmap_dynamic.patch
new file mode 100644
index 0000000..eaa6dbf
--- /dev/null
+++ b/target/linux/generic/patches-3.3/270-regmap_dynamic.patch
@@ -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
diff --git a/target/linux/generic/patches-3.6/270-regmap_dynamic.patch b/target/linux/generic/patches-3.6/270-regmap_dynamic.patch
new file mode 100644
index 0000000..d0c1a82
--- /dev/null
+++ b/target/linux/generic/patches-3.6/270-regmap_dynamic.patch
@@ -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 */
diff --git a/target/linux/generic/patches-3.7/259-regmap_dynamic.patch b/target/linux/generic/patches-3.7/259-regmap_dynamic.patch
new file mode 100644
index 0000000..3c30652
--- /dev/null
+++ b/target/linux/generic/patches-3.7/259-regmap_dynamic.patch
@@ -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 */