summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2026-03-12 03:15:03 +0300
committerMark Brown <broonie@kernel.org>2026-03-20 15:55:36 +0300
commitc2da4813882b8037198cd8e67182293e17b44573 (patch)
treeeedbea0f312b1326a2f60f8ad4caaa2ea85af961
parentf338e77383789c0cae23ca3d48adcc5e9e137e3c (diff)
downloadlinux-c2da4813882b8037198cd8e67182293e17b44573.tar.xz
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 <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/878qbxzywo.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--include/sound/soc-component.h1
-rw-r--r--sound/soc/soc-component.c17
2 files changed, 18 insertions, 0 deletions
diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h
index 2a2b74b24a60..c08922290cf1 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 89f236ab3034..9dc2cbdc2dda 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
/**