Commit 98d3088e authored by Mark Brown's avatar Mark Brown

ASoC: core: Fix check before defaulting to regmap

Check if the chip has provided a write operation (which is mandatory for
I/O) rather than looking for control data as some of the MFDs use a global
for this. Also skip the attempt if there's no regmap available by device
in case things get confused by the attempt to default.
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Tested-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
parent 9d40e558
...@@ -1096,7 +1096,7 @@ static int soc_probe_codec(struct snd_soc_card *card, ...@@ -1096,7 +1096,7 @@ static int soc_probe_codec(struct snd_soc_card *card,
} }
/* If the driver didn't set I/O up try regmap */ /* If the driver didn't set I/O up try regmap */
if (!codec->control_data) if (!codec->write && dev_get_regmap(codec->dev, NULL))
snd_soc_codec_set_cache_io(codec, 0, 0, SND_SOC_REGMAP); snd_soc_codec_set_cache_io(codec, 0, 0, SND_SOC_REGMAP);
if (driver->controls) if (driver->controls)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment