提交 a32c17b8 编写于 作者: X Xiubo Li 提交者: Mark Brown

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: NXiubo Li <Li.Xiubo@freescale.com>
Signed-off-by: NMark Brown <broonie@linaro.org>
上级 092eba93
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册