Commit d0ff8ba5 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown

ASoC: add Component level .read/.write

In current ALSA SoC, Codec only has .read/.write callback.
Codec will be merged into Component in next generation ALSA SoC,
thus current Codec specific feature need to be merged into it.
This is glue patch for it.
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent b9f902b7
...@@ -802,6 +802,9 @@ struct snd_soc_component_driver { ...@@ -802,6 +802,9 @@ struct snd_soc_component_driver {
int (*suspend)(struct snd_soc_component *); int (*suspend)(struct snd_soc_component *);
int (*resume)(struct snd_soc_component *); int (*resume)(struct snd_soc_component *);
unsigned int (*read)(struct snd_soc_component *, unsigned int);
int (*write)(struct snd_soc_component *, unsigned int, unsigned int);
/* pcm creation and destruction */ /* pcm creation and destruction */
int (*pcm_new)(struct snd_soc_pcm_runtime *); int (*pcm_new)(struct snd_soc_pcm_runtime *);
void (*pcm_free)(struct snd_pcm *); void (*pcm_free)(struct snd_pcm *);
......
...@@ -34,6 +34,10 @@ int snd_soc_component_read(struct snd_soc_component *component, ...@@ -34,6 +34,10 @@ int snd_soc_component_read(struct snd_soc_component *component,
ret = regmap_read(component->regmap, reg, val); ret = regmap_read(component->regmap, reg, val);
else if (component->read) else if (component->read)
ret = component->read(component, reg, val); ret = component->read(component, reg, val);
else if (component->driver->read) {
*val = component->driver->read(component, reg);
ret = 0;
}
else else
ret = -EIO; ret = -EIO;
...@@ -70,6 +74,8 @@ int snd_soc_component_write(struct snd_soc_component *component, ...@@ -70,6 +74,8 @@ int snd_soc_component_write(struct snd_soc_component *component,
return regmap_write(component->regmap, reg, val); return regmap_write(component->regmap, reg, val);
else if (component->write) else if (component->write)
return component->write(component, reg, val); return component->write(component, reg, val);
else if (component->driver->write)
return component->driver->write(component, reg, val);
else else
return -EIO; return -EIO;
} }
......
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