ASoC: Move active copy of CODEC read and write into runtime structure
We shouldn't be assigning to the driver structure (which really ought to be const, further patch to follow) though there's unlikely to be any actual problem except in the unlikely case that two devices with the same driver but different bus types appear in the same system. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
This commit is contained in:
@@ -2077,7 +2077,7 @@ unsigned int snd_soc_read(struct snd_soc_codec *codec, unsigned int reg)
|
||||
{
|
||||
unsigned int ret;
|
||||
|
||||
ret = codec->driver->read(codec, reg);
|
||||
ret = codec->read(codec, reg);
|
||||
dev_dbg(codec->dev, "read %x => %x\n", reg, ret);
|
||||
trace_snd_soc_reg_read(codec, reg, ret);
|
||||
|
||||
@@ -2090,7 +2090,7 @@ unsigned int snd_soc_write(struct snd_soc_codec *codec,
|
||||
{
|
||||
dev_dbg(codec->dev, "write %x = %x\n", reg, val);
|
||||
trace_snd_soc_reg_write(codec, reg, val);
|
||||
return codec->driver->write(codec, reg, val);
|
||||
return codec->write(codec, reg, val);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(snd_soc_write);
|
||||
|
||||
@@ -3448,6 +3448,8 @@ int snd_soc_register_codec(struct device *dev,
|
||||
|
||||
INIT_LIST_HEAD(&codec->dapm.widgets);
|
||||
INIT_LIST_HEAD(&codec->dapm.paths);
|
||||
codec->write = codec_drv->write;
|
||||
codec->read = codec_drv->read;
|
||||
codec->dapm.bias_level = SND_SOC_BIAS_OFF;
|
||||
codec->dapm.dev = dev;
|
||||
codec->dapm.codec = codec;
|
||||
|
Reference in New Issue
Block a user