History log of /drivers/base/regmap/regcache-lzo.c
Revision Date Author Comments
0a329d2d5a1dd75273597538cdc33512ee38855e 23-Mar-2012 Akinobu Mita <akinobu.mita@gmail.com> bitops: remove for_each_set_bit_cont()

Remove for_each_set_bit_cont() after confirming that no one uses
for_each_set_bit_cont() anymore.

[sfr@canb.auug.org.au: regmap: cope with bitops API change]
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Robert Richter <robert.richter@amd.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
51990e825431089747f8896244b5c17d3a6423f1 22-Jan-2012 Paul Gortmaker <paul.gortmaker@windriver.com> device.h: cleanup users outside of linux/include (C files)

For files that are actively using linux/device.h, make sure
that they call it out. This will allow us to clean up some
of the implicit uses of linux/device.h within include/*
without introducing build regressions.

Yes, this was created by "cheating" -- i.e. the headers were
cleaned up, and then the fallout was found and fixed, and then
the two commits were reordered. This ensures we don't introduce
build regressions into the git history.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
a0941e562e8008804f9fe4400315ceb164752fac 27-Feb-2012 Mark Brown <broonie@opensource.wolfsonmicro.com> regmap: Fix x86_64 breakage

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
ac8d91c801905a061ca883dca427a5e19602a1e7 23-Feb-2012 Mark Brown <broonie@opensource.wolfsonmicro.com> regmap: Supply ranges to the sync operations

In order to allow us to support partial sync operations add minimum and
maximum register arguments to the sync operation and update the rbtree
and lzo caches to use this new information. The LZO implementation is
obviously not good, we could exit the iteration earlier, but there may
be room for more wide reaching optimisation there.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
a3c3774176838bbfa4f6e48133644903818e56dc 23-Feb-2012 Mark Brown <broonie@opensource.wolfsonmicro.com> regmap: Skip hardware defaults for LZO caches

Saves some I/O when resyncing; we assume that syncs start from the device
reset state.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
c2b1ecd13c6a7b19f1c0c48b68f61ab083f3ec3f 15-Nov-2011 Lars-Peter Clausen <lars@metafoo.de> regmap: Do not call regcache_exit from regcache_lzo_init error path

Calling regcache_exit from regcache_lzo_init is first of all a layering
violation and secondly will cause double frees. regcache_exit will free buffers
allocated by the core, but the core will also free the same buffers when the
cacheops init callback returns an error. Thus we end up with a double free.
Fix this by not calling regcache_exit but only free those buffers which, have
been allocated in this function.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
50b776fc71c13663eb7434f634f2b796de5c9885 02-Nov-2011 Mark Brown <broonie@opensource.wolfsonmicro.com> regmap: Rename LZO cache type to compressed

Users probably don't care about the specific compression algorithm and
we might want to use a different algorithm (snappy being the one I'm
thinking of right now) so update the public interface to have a more
generic name.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
82732bdd663ee9dc1ad4b0409881fe89a9d827ca 18-Oct-2011 Mark Brown <broonie@opensource.wolfsonmicro.com> regmap: Prepare LZO cache for variable block sizes

Give regcache_lzo_block_count() a copy of the map so that when we decide
we want to make the LZO cache more controllable we can more easily do so.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
6e6ace00a045251bd172b9b9c2379857bbff3dc7 09-Oct-2011 Mark Brown <broonie@opensource.wolfsonmicro.com> regmap: Return a sensible error code if we fail to read the cache

If a register isn't cached then let callers know that so they can fall
back or error handle appropriately.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
13753a9088af23c61e2f5c10a8f3ea136d8ebab5 29-Sep-2011 Dimitris Papastamos <dp@opensource.wolfsonmicro.com> regmap: Lock the sync path, ensure we use the lockless _regmap_write()

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2cbbb579bcbe3e11baf1c59920dcd5a780b80447 19-Sep-2011 Dimitris Papastamos <dp@opensource.wolfsonmicro.com> regmap: Add the LZO cache support

This patch adds support for LZO compression when storing the register
cache.

For a typical device whose register map would normally occupy 25kB or 50kB
by using the LZO compression technique, one can get down to ~5-7kB. There
might be a performance penalty associated with each individual read/write
due to decompressing/compressing the underlying cache, however that should not
be noticeable. These memory benefits depend on whether the target architecture
can get rid of the memory occupied by the original register defaults cache
which is marked as __devinitconst. Nevertheless there will be some memory
gain even if the target architecture can't get rid of the original register
map, this should be around ~30-32kB instead of 50kB.

Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>