• Dimitris Papastamos's avatar
    ASoC: soc-cache: Add support for LZO register caching · cc28fb8e
    Dimitris Papastamos authored
    This patch adds support for LZO compression when storing the register
    cache.  The initial register defaults cache is marked as __devinitconst
    and the only change required for a driver to use LZO compression is
    to set the compress_type member in codec->driver to SND_SOC_LZO_COMPRESSION.
    
    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: default avatarDimitris Papastamos <dp@opensource.wolfsonmicro.com>
    Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    cc28fb8e
soc-cache.c 29.9 KB