From: Mark Brown Date: Fri, 17 Feb 2012 22:33:29 +0000 (-0800) Subject: ASoC: io: Retrieve val_bytes from the regmap API X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=2b4bdee2920fb3894f9116f76343f8b31f9e4da8;p=openwrt%2Fstaging%2Fblogic.git 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 Acked-by: Liam Girdwood --- diff --git a/sound/soc/soc-io.c b/sound/soc/soc-io.c index 39ba5070ff92..4d8dc6a27d4d 100644 --- a/sound/soc/soc-io.c +++ b/sound/soc/soc-io.c @@ -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: