| From 811d9e2268a62b830cfe93cd8bc929afcb8b198b Mon Sep 17 00:00:00 2001 |
| From: Felix Fietkau <nbd@nbd.name> |
| Date: Sat, 15 Jul 2017 21:12:38 +0200 |
| Subject: kernel: move regmap bloat out of the kernel image if it is only being used in modules |
| |
| lede-commit: 96f39119815028073583e4fca3a9c5fe9141e998 |
| Signed-off-by: Felix Fietkau <nbd@nbd.name> |
| --- |
| drivers/base/regmap/Kconfig | 15 ++++++++++----- |
| drivers/base/regmap/Makefile | 12 ++++++++---- |
| drivers/base/regmap/regmap.c | 3 +++ |
| include/linux/regmap.h | 2 +- |
| 4 files changed, 22 insertions(+), 10 deletions(-) |
| |
| --- a/drivers/base/regmap/Kconfig |
| +++ b/drivers/base/regmap/Kconfig |
| @@ -4,9 +4,8 @@ |
| # subsystems should select the appropriate symbols. |
| |
| config REGMAP |
| - default y if (REGMAP_I2C || REGMAP_SPI || REGMAP_SPMI || REGMAP_W1 || REGMAP_AC97 || REGMAP_MMIO || REGMAP_IRQ || REGMAP_SCCB || REGMAP_I3C) |
| select IRQ_DOMAIN if REGMAP_IRQ |
| - bool |
| + tristate |
| |
| config REGCACHE_COMPRESSED |
| select LZO_COMPRESS |
| @@ -18,38 +17,49 @@ config REGMAP_AC97 |
| |
| config REGMAP_I2C |
| tristate |
| + select REGMAP |
| depends on I2C |
| |
| config REGMAP_SLIMBUS |
| tristate |
| + select REGMAP |
| depends on SLIMBUS |
| |
| config REGMAP_SPI |
| tristate |
| + select REGMAP |
| + depends on SPI_MASTER |
| depends on SPI |
| |
| config REGMAP_SPMI |
| tristate |
| + select REGMAP |
| depends on SPMI |
| |
| config REGMAP_W1 |
| tristate |
| + select REGMAP |
| depends on W1 |
| |
| config REGMAP_MMIO |
| tristate |
| + select REGMAP |
| |
| config REGMAP_IRQ |
| bool |
| + select REGMAP |
| |
| config REGMAP_SOUNDWIRE |
| tristate |
| + select REGMAP |
| depends on SOUNDWIRE |
| |
| config REGMAP_SCCB |
| tristate |
| + select REGMAP |
| depends on I2C |
| |
| config REGMAP_I3C |
| tristate |
| + select REGMAP |
| depends on I3C |
| --- a/drivers/base/regmap/Makefile |
| +++ b/drivers/base/regmap/Makefile |
| @@ -2,10 +2,14 @@ |
| # For include/trace/define_trace.h to include trace.h |
| CFLAGS_regmap.o := -I$(src) |
| |
| -obj-$(CONFIG_REGMAP) += regmap.o regcache.o |
| -obj-$(CONFIG_REGMAP) += regcache-rbtree.o regcache-flat.o |
| -obj-$(CONFIG_REGCACHE_COMPRESSED) += regcache-lzo.o |
| -obj-$(CONFIG_DEBUG_FS) += regmap-debugfs.o |
| +regmap-core-objs = regmap.o regcache.o regcache-rbtree.o regcache-flat.o |
| +ifdef CONFIG_DEBUG_FS |
| +regmap-core-objs += regmap-debugfs.o |
| +endif |
| +ifdef CONFIG_REGCACHE_COMPRESSED |
| +regmap-core-objs += regcache-lzo.o |
| +endif |
| +obj-$(CONFIG_REGMAP) += regmap-core.o |
| obj-$(CONFIG_REGMAP_AC97) += regmap-ac97.o |
| obj-$(CONFIG_REGMAP_I2C) += regmap-i2c.o |
| obj-$(CONFIG_REGMAP_SLIMBUS) += regmap-slimbus.o |
| --- a/drivers/base/regmap/regmap.c |
| +++ b/drivers/base/regmap/regmap.c |
| @@ -9,6 +9,7 @@ |
| #include <linux/device.h> |
| #include <linux/slab.h> |
| #include <linux/export.h> |
| +#include <linux/module.h> |
| #include <linux/mutex.h> |
| #include <linux/err.h> |
| #include <linux/of.h> |
| @@ -3118,3 +3119,5 @@ static int __init regmap_initcall(void) |
| return 0; |
| } |
| postcore_initcall(regmap_initcall); |
| + |
| +MODULE_LICENSE("GPL"); |
| --- a/include/linux/regmap.h |
| +++ b/include/linux/regmap.h |
| @@ -185,7 +185,7 @@ struct reg_sequence { |
| pollret ?: ((cond) ? 0 : -ETIMEDOUT); \ |
| }) |
| |
| -#ifdef CONFIG_REGMAP |
| +#if IS_REACHABLE(CONFIG_REGMAP) |
| |
| enum regmap_endian { |
| /* Unspecified -> 0 -> Backwards compatible default */ |