From: Dimitris Papastamos Date: Wed, 12 Jan 2011 10:22:28 +0000 (+0000) Subject: ASoC: soc-cache: Ensure flat compression uses a copy of the defaults cache X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=d779fce5d79525d66269c8f6e430e1515d697f3d;p=GitHub%2Fmt8127%2Fandroid_kernel_alcatel_ttab.git ASoC: soc-cache: Ensure flat compression uses a copy of the defaults cache With the addition of the cache fallback functionality, it is necessary to ensure that if the register defaults cache was marked as __devinitconst and the LZO compression is not compiled in the kernel, the fallback to flat compression will still use a copy of the defaults cache. Signed-off-by: Dimitris Papastamos Acked-by: Liam Girdwood Signed-off-by: Mark Brown --- diff --git a/sound/soc/soc-cache.c b/sound/soc/soc-cache.c index 9e534429ea63..19b29fb3ca4b 100644 --- a/sound/soc/soc-cache.c +++ b/sound/soc/soc-cache.c @@ -1400,8 +1400,8 @@ static int snd_soc_flat_cache_sync(struct snd_soc_codec *codec) ret = snd_soc_cache_read(codec, i, &val); if (ret) return ret; - if (codec_drv->reg_cache_default) - if (snd_soc_get_cache_val(codec_drv->reg_cache_default, + if (codec->reg_def_copy) + if (snd_soc_get_cache_val(codec->reg_def_copy, i, codec_drv->reg_word_size) == val) continue; ret = snd_soc_write(codec, i, val); @@ -1446,16 +1446,8 @@ static int snd_soc_flat_cache_init(struct snd_soc_codec *codec) codec_drv = codec->driver; reg_size = codec_drv->reg_cache_size * codec_drv->reg_word_size; - /* - * for flat compression, we don't need to keep a copy of the - * original defaults register cache as it will definitely not - * be marked as __devinitconst - */ - kfree(codec->reg_def_copy); - codec->reg_def_copy = NULL; - - if (codec_drv->reg_cache_default) - codec->reg_cache = kmemdup(codec_drv->reg_cache_default, + if (codec->reg_def_copy) + codec->reg_cache = kmemdup(codec->reg_def_copy, reg_size, GFP_KERNEL); else codec->reg_cache = kzalloc(reg_size, GFP_KERNEL);