74d00a8c38
* properly format/comment all patches * merge debloat patches * merge Kconfig patches * merge swconfig patches * merge hotplug patches * drop 200-fix_localversion.patch - upstream * drop 222-arm_zimage_none.patch - unused * drop 252-mv_cesa_depends.patch - no longer required * drop 410-mtd-move-forward-declaration-of-struct-mtd_info.patch - unused * drop 661-fq_codel_keep_dropped_stats.patch - outdated * drop 702-phy_add_aneg_done_function.patch - upstream * drop 840-rtc7301.patch - unused * drop 841-rtc_pt7c4338.patch - upstream * drop 921-use_preinit_as_init.patch - unused * drop spio-gpio-old and gpio-mmc - unused Signed-off-by: John Crispin <john@phrozen.org>
70 lines
2.2 KiB
Diff
70 lines
2.2 KiB
Diff
From de88e9b0354c2e3ff8eae3f97afe43a34f5ed239 Mon Sep 17 00:00:00 2001
|
|
From: Jonas Gorski <jonas.gorski@gmail.com>
|
|
Date: Sat, 13 May 2017 13:03:21 +0200
|
|
Subject: [PATCH] regmap: make LZO cache optional
|
|
|
|
Commit 2cbbb579bcbe3 ("regmap: Add the LZO cache support") added support
|
|
for LZO compression in regcache, but there were never any users added
|
|
afterwards. Since LZO support itself has its own size, it currently is
|
|
rather a deoptimization.
|
|
|
|
So make it optional by introducing a symbol that can be selected by
|
|
drivers wanting to make use of it.
|
|
|
|
Saves e.g. ~46 kB on MIPS (size of LZO support + regcache LZO code).
|
|
|
|
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
|
|
---
|
|
I tried using google to find any users (even out-of-tree ones), but at
|
|
best I found a single driver submission that was switched to RBTREE in
|
|
subsequent resubmissions (MFD_SMSC).
|
|
|
|
One could maybe also just drop the code because of no users for 5 years,
|
|
but that would be up to the maintainer(s) to decide.
|
|
|
|
drivers/base/regmap/Kconfig | 5 ++++-
|
|
drivers/base/regmap/Makefile | 3 ++-
|
|
drivers/base/regmap/regcache.c | 2 ++
|
|
3 files changed, 8 insertions(+), 2 deletions(-)
|
|
|
|
--- a/drivers/base/regmap/Kconfig
|
|
+++ b/drivers/base/regmap/Kconfig
|
|
@@ -4,9 +4,12 @@
|
|
|
|
config REGMAP
|
|
default y if (REGMAP_I2C || REGMAP_SPI || REGMAP_SPMI || REGMAP_AC97 || REGMAP_MMIO || REGMAP_IRQ)
|
|
+ select IRQ_DOMAIN if REGMAP_IRQ
|
|
+ bool
|
|
+
|
|
+config REGCACHE_COMPRESSED
|
|
select LZO_COMPRESS
|
|
select LZO_DECOMPRESS
|
|
- select IRQ_DOMAIN if REGMAP_IRQ
|
|
bool
|
|
|
|
config REGMAP_AC97
|
|
--- a/drivers/base/regmap/Makefile
|
|
+++ b/drivers/base/regmap/Makefile
|
|
@@ -2,7 +2,8 @@
|
|
CFLAGS_regmap.o := -I$(src)
|
|
|
|
obj-$(CONFIG_REGMAP) += regmap.o regcache.o
|
|
-obj-$(CONFIG_REGMAP) += regcache-rbtree.o regcache-lzo.o regcache-flat.o
|
|
+obj-$(CONFIG_REGMAP) += regcache-rbtree.o regcache-flat.o
|
|
+obj-$(CONFIG_REGCACHE_COMPRESSED) += regcache-lzo.o
|
|
obj-$(CONFIG_DEBUG_FS) += regmap-debugfs.o
|
|
obj-$(CONFIG_REGMAP_AC97) += regmap-ac97.o
|
|
obj-$(CONFIG_REGMAP_I2C) += regmap-i2c.o
|
|
--- a/drivers/base/regmap/regcache.c
|
|
+++ b/drivers/base/regmap/regcache.c
|
|
@@ -21,7 +21,9 @@
|
|
|
|
static const struct regcache_ops *cache_types[] = {
|
|
®cache_rbtree_ops,
|
|
+#if IS_ENABLED(CONFIG_REGCACHE_COMPRESSED)
|
|
®cache_lzo_ops,
|
|
+#endif
|
|
®cache_flat_ops,
|
|
};
|
|
|