[alsa-devel] Failed to set cache compression type
Hi,
I am booting linux-next 20140602 on a mx6qsabresd and I get the following probe error:
wm8962 0-001a: customer id 0 revision D wm8962 0-001a: ASoC: Failed to set cache compression type: -22 imx-wm8962 sound: snd_soc_register_card failed (-22) imx-wm8962: probe of sound failed with error -22
What is the proper way to fix it?
Thanks,
Fabio Estevam
On 06/02/2014 04:43 PM, Fabio Estevam wrote:
Hi,
I am booting linux-next 20140602 on a mx6qsabresd and I get the following probe error:
wm8962 0-001a: customer id 0 revision D wm8962 0-001a: ASoC: Failed to set cache compression type: -22 imx-wm8962 sound: snd_soc_register_card failed (-22) imx-wm8962: probe of sound failed with error -22
What is the proper way to fix it?
I was looking at this too and it was introduced by the commit b59dce53ef61 ("ASoC: cache: Fix possible ZERO_SIZE_PTR pointer dereferencing error.").
If I understood commit 657254714ad2 ("ASoC: io: Remove support for ASoC cache in conjunction with regmap") right should we remove remaining soc-cache use? All codec drivers seems to include regmap.h although some of them are still calling soc_cache_sync().
On 06/02/2014 04:02 PM, Jarkko Nikula wrote:
On 06/02/2014 04:43 PM, Fabio Estevam wrote:
Hi,
I am booting linux-next 20140602 on a mx6qsabresd and I get the following probe error:
wm8962 0-001a: customer id 0 revision D wm8962 0-001a: ASoC: Failed to set cache compression type: -22 imx-wm8962 sound: snd_soc_register_card failed (-22) imx-wm8962: probe of sound failed with error -22
What is the proper way to fix it?
I was looking at this too and it was introduced by the commit b59dce53ef61 ("ASoC: cache: Fix possible ZERO_SIZE_PTR pointer dereferencing error.").
I think snd_soc_cache_init() should return 0 rather than -EINVAL if reg_size is 0.
If I understood commit 657254714ad2 ("ASoC: io: Remove support for ASoC cache in conjunction with regmap") right should we remove remaining soc-cache use? All codec drivers seems to include regmap.h although some of them are still calling soc_cache_sync().
Yes, ASoC level support for caching is going to be removed, hopefully sooner than later. If a driver still uses soc_cache_sync() even though it has switched to regmap for IO that's a bug.
- Lars
On Mon, Jun 2, 2014 at 11:10 AM, Lars-Peter Clausen lars@metafoo.de wrote:
I think snd_soc_cache_init() should return 0 rather than -EINVAL if reg_size is 0.
Yes, this fixes the issue:
--- a/sound/soc/soc-cache.c +++ b/sound/soc/soc-cache.c @@ -73,7 +73,7 @@ int snd_soc_cache_init(struct snd_soc_codec *codec) reg_size = codec_drv->reg_cache_size * codec_drv->reg_word_size;
if (!reg_size) - return -EINVAL; + return 0;
mutex_init(&codec->cache_rw_mutex);
On Mon, Jun 02, 2014 at 05:02:50PM +0300, Jarkko Nikula wrote:
If I understood commit 657254714ad2 ("ASoC: io: Remove support for ASoC cache in conjunction with regmap") right should we remove remaining soc-cache use? All codec drivers seems to include regmap.h although some of them are still calling soc_cache_sync().
Anything using both regmap and the ASoC cache is definitely broken, yes.
On Mon, Jun 02, 2014 at 05:02:50PM +0300, Jarkko Nikula wrote:
I was looking at this too and it was introduced by the commit b59dce53ef61 ("ASoC: cache: Fix possible ZERO_SIZE_PTR pointer dereferencing error.").
I've just fixed that now, the error checking isn't right - it should be returning 0 not -EINVAL.
If I understood commit 657254714ad2 ("ASoC: io: Remove support for ASoC cache in conjunction with regmap") right should we remove remaining soc-cache use? All codec drivers seems to include regmap.h although some of them are still calling soc_cache_sync().
There's still the AC'97 stuff at least, plus the ab8500 though if that ends up blocking anything I'm just inclined to reapply the conversion patch and let someone fix it if they care.
participants (4)
-
Fabio Estevam
-
Jarkko Nikula
-
Lars-Peter Clausen
-
Mark Brown