/branches/18.06.1/target/linux/generic/backport-4.9/087-regmap-make-LZO-cache-optional.patch |
@@ -0,0 +1,69 @@ |
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, |
}; |
|