ASoC: core: Fix check before setting default I/O up try regmap
Since the CODEC driver could specify its own I/O(read and write) while registering the CODEC for some reason, maybe the MFDs is used, etc. So just do check it, if they are not specified by CODEC driver then try to set up the default regmap I/O if regmap is used. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
092eba937d
commit
a32c17b87c
@ -1137,9 +1137,15 @@ static int soc_probe_codec(struct snd_soc_card *card,
|
||||
|
||||
codec->dapm.idle_bias_off = driver->idle_bias_off;
|
||||
|
||||
/* Set the default I/O up try regmap */
|
||||
if (dev_get_regmap(codec->dev, NULL))
|
||||
snd_soc_codec_set_cache_io(codec, NULL);
|
||||
if (!codec->write && dev_get_regmap(codec->dev, NULL)) {
|
||||
/* Set the default I/O up try regmap */
|
||||
ret = snd_soc_codec_set_cache_io(codec, NULL);
|
||||
if (ret < 0) {
|
||||
dev_err(codec->dev,
|
||||
"Failed to set cache I/O: %d\n", ret);
|
||||
goto err_probe;
|
||||
}
|
||||
}
|
||||
|
||||
if (driver->probe) {
|
||||
ret = driver->probe(codec);
|
||||
|
Loading…
Reference in New Issue
Block a user