You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.2 KiB
67 lines
2.2 KiB
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_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_I2C
|
|
--- a/drivers/base/regmap/Makefile
|
|
+++ b/drivers/base/regmap/Makefile
|
|
@@ -1,5 +1,6 @@
|
|
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_I2C) += regmap-i2c.o
|
|
obj-$(CONFIG_REGMAP_SPI) += regmap-spi.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,
|
|
};
|
|
|
|
|