Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a32c17b8 authored by Xiubo Li's avatar Xiubo Li Committed by Mark Brown
Browse files

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: default avatarXiubo Li <Li.Xiubo@freescale.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 092eba93
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -1137,9 +1137,15 @@ static int soc_probe_codec(struct snd_soc_card *card,

	codec->dapm.idle_bias_off = driver->idle_bias_off;

	if (!codec->write && dev_get_regmap(codec->dev, NULL)) {
		/* Set the default I/O up try regmap */
	if (dev_get_regmap(codec->dev, NULL))
		snd_soc_codec_set_cache_io(codec, NULL);
		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);