From: Kuninori Morimoto Date: Thu, 12 Mar 2026 00:15:03 +0000 (+0000) Subject: ASoC: soc-component: add snd_soc_component_regmap_val_bytes() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c2da4813882b8037198cd8e67182293e17b44573;p=thirdparty%2Flinux.git ASoC: soc-component: add snd_soc_component_regmap_val_bytes() component has component->val_bytes which is set via snd_soc_component_setup_regmap(). But it can be calculated via component->regmap. No need to keep it as component->val_bytes. Add snd_soc_component_regmap_val_bytes() for it. Signed-off-by: Kuninori Morimoto Link: https://patch.msgid.link/878qbxzywo.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown --- diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h index 2a2b74b24a609..c08922290cf1a 100644 --- a/include/sound/soc-component.h +++ b/include/sound/soc-component.h @@ -327,6 +327,7 @@ int snd_soc_component_stream_event(struct snd_soc_component *component, int snd_soc_component_set_bias_level(struct snd_soc_component *component, enum snd_soc_bias_level level); +int snd_soc_component_regmap_val_bytes(struct snd_soc_component *component); void snd_soc_component_setup_regmap(struct snd_soc_component *component); #ifdef CONFIG_REGMAP void snd_soc_component_init_regmap(struct snd_soc_component *component, diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c index 89f236ab30341..9dc2cbdc2dda7 100644 --- a/sound/soc/soc-component.c +++ b/sound/soc/soc-component.c @@ -351,6 +351,23 @@ void snd_soc_component_setup_regmap(struct snd_soc_component *component) component->val_bytes = val_bytes; } +int snd_soc_component_regmap_val_bytes(struct snd_soc_component *component) +{ + int val_bytes; + + /* Errors are legitimate for non-integer byte multiples */ + + if (!component->regmap) + return 0; + + val_bytes = regmap_get_val_bytes(component->regmap); + if (val_bytes < 0) + return 0; + + return val_bytes; +} +EXPORT_SYMBOL_GPL(snd_soc_component_regmap_val_bytes); + #ifdef CONFIG_REGMAP /**