ASoC: io: Retrieve val_bytes from the regmap API

Allow us to build infrastructure which needs to know the size of a value
without requiring regmap based drivers to supply this information to both
ASoC and regmap by asking regmap for the value.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
This commit is contained in:
Mark Brown 2012-02-17 14:33:29 -08:00
parent 8215045181
commit 2b4bdee292
1 changed files with 6 additions and 0 deletions

View File

@ -114,6 +114,7 @@ int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
enum snd_soc_control_type control)
{
struct regmap_config config;
int ret;
memset(&config, 0, sizeof(config));
codec->write = hw_write;
@ -141,6 +142,11 @@ int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec,
case SND_SOC_REGMAP:
/* Device has made its own regmap arrangements */
codec->using_regmap = true;
ret = regmap_get_val_bytes(codec->control_data);
/* Errors are legitimate for non-integer byte multiples */
if (ret > 0)
codec->val_bytes = ret;
break;
default: