summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2026-08-31 06:38:42 +0000
committerMark Brown <broonie@kernel.org>2026-09-09 16:42:36 +0100
commitff1e6b54805fd84e7f904f210ae3ef9449a5d672 (patch)
tree2c2c9c9d5c188d008db471d4da7d5ab59d502a91
parenta1b4963762c8d051e89d5c495838cdf04008ccea (diff)
downloadlinux-next-ff1e6b54805fd84e7f904f210ae3ef9449a5d672.tar.gz
linux-next-ff1e6b54805fd84e7f904f210ae3ef9449a5d672.zip
ASoC: soc-dai: move snd_soc_dai_dma_data_{get/set}() to soc-dai.c
DAI parameter will be capsuled soon, will be not enable to access from soc-dai.h. Move it to soc-dai.c These macros are very similar. Will be handled by same macro snd_soc_dai_dma_data_get() -> snd_soc_dai_stream_dma_data_get() snd_soc_dai_dma_data_set() -> snd_soc_dai_stream_dma_data_set() snd_soc_dai_get_dma_data() -> snd_soc_dai_stream_dma_data_get() snd_soc_dai_set_dma_data() -> snd_soc_dai_stream_dma_data_set() This macro is not much helps code, will be removed snd_soc_dai_init_dma_data() Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/87mru2ssjx.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--include/sound/soc-dai.h47
-rw-r--r--sound/soc/soc-dai.c12
2 files changed, 42 insertions, 17 deletions
diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h
index 232f43ff71f0..c75b41b773ba 100644
--- a/include/sound/soc-dai.h
+++ b/include/sound/soc-dai.h
@@ -513,27 +513,27 @@ struct snd_soc_dapm_widget *snd_soc_dai_stream_widget_get(struct snd_soc_dai *da
#define snd_soc_dai_stream_widget_set_capture(dai, widget) snd_soc_dai_stream_widget_set(dai, SNDRV_PCM_STREAM_CAPTURE, widget)
void snd_soc_dai_stream_widget_set(struct snd_soc_dai *dai, int stream, struct snd_soc_dapm_widget *widget);
-#define snd_soc_dai_dma_data_get_playback(dai) snd_soc_dai_dma_data_get(dai, SNDRV_PCM_STREAM_PLAYBACK)
-#define snd_soc_dai_dma_data_get_capture(dai) snd_soc_dai_dma_data_get(dai, SNDRV_PCM_STREAM_CAPTURE)
-#define snd_soc_dai_get_dma_data(dai, ss) snd_soc_dai_dma_data_get(dai, ss->stream)
-static inline void *snd_soc_dai_dma_data_get(const struct snd_soc_dai *dai, int stream)
+#define snd_soc_dai_stream_dma_data_get_playback(dai) snd_soc_dai_stream_dma_data_get(dai, SNDRV_PCM_STREAM_PLAYBACK)
+#define snd_soc_dai_stream_dma_data_get_capture(dai) snd_soc_dai_stream_dma_data_get(dai, SNDRV_PCM_STREAM_CAPTURE)
+void *snd_soc_dai_stream_dma_data_get_i(const struct snd_soc_dai *dai, int stream);
+static inline void *snd_soc_dai_stream_dma_data_get_s(const struct snd_soc_dai *dai, struct snd_pcm_substream *substream)
{
- return dai->stream[stream].dma_data;
+ return snd_soc_dai_stream_dma_data_get_i(dai, substream->stream);
}
-
-#define snd_soc_dai_dma_data_set_playback(dai, data) snd_soc_dai_dma_data_set(dai, SNDRV_PCM_STREAM_PLAYBACK, data)
-#define snd_soc_dai_dma_data_set_capture(dai, data) snd_soc_dai_dma_data_set(dai, SNDRV_PCM_STREAM_CAPTURE, data)
-#define snd_soc_dai_set_dma_data(dai, ss, data) snd_soc_dai_dma_data_set(dai, ss->stream, data)
-static inline void snd_soc_dai_dma_data_set(struct snd_soc_dai *dai, int stream, void *data)
-{
- dai->stream[stream].dma_data = data;
-}
-
-static inline void snd_soc_dai_init_dma_data(struct snd_soc_dai *dai, void *playback, void *capture)
+#define snd_soc_dai_stream_dma_data_get(dai, x) _Generic((x), \
+ int : snd_soc_dai_stream_dma_data_get_i, \
+ struct snd_pcm_substream * : snd_soc_dai_stream_dma_data_get_s)(dai, x)
+
+#define snd_soc_dai_stream_dma_data_set_playback(dai, data) snd_soc_dai_stream_dma_data_set(dai, SNDRV_PCM_STREAM_PLAYBACK, data)
+#define snd_soc_dai_stream_dma_data_set_capture(dai, data) snd_soc_dai_stream_dma_data_set(dai, SNDRV_PCM_STREAM_CAPTURE, data)
+void snd_soc_dai_stream_dma_data_set_i(struct snd_soc_dai *dai, int stream, void *data);
+static inline void snd_soc_dai_stream_dma_data_set_s(struct snd_soc_dai *dai, struct snd_pcm_substream *substream, void *data)
{
- snd_soc_dai_dma_data_set_playback(dai, playback);
- snd_soc_dai_dma_data_set_capture(dai, capture);
+ snd_soc_dai_stream_dma_data_set_i(dai, substream->stream, data);
}
+#define snd_soc_dai_stream_dma_data_set(dai, x, data) _Generic((x), \
+ int : snd_soc_dai_stream_dma_data_set_i, \
+ struct snd_pcm_substream * : snd_soc_dai_stream_dma_data_set_s)(dai, x, data)
static inline unsigned int snd_soc_dai_tdm_mask_get(const struct snd_soc_dai *dai,
int stream)
@@ -619,5 +619,18 @@ void snd_soc_dai_unregister(struct snd_soc_dai *dai);
#define snd_soc_dai_set_widget_playback(dai, widget) snd_soc_dai_stream_widget_set(dai, SNDRV_PCM_STREAM_PLAYBACK, widget)
#define snd_soc_dai_set_widget_capture(dai, widget) snd_soc_dai_stream_widget_set(dai, SNDRV_PCM_STREAM_CAPTURE, widget)
#define snd_soc_dai_set_widget snd_soc_dai_stream_widget_set
+#define snd_soc_dai_dma_data_get_playback(dai) snd_soc_dai_stream_dma_data_get(dai, SNDRV_PCM_STREAM_PLAYBACK)
+#define snd_soc_dai_dma_data_get_capture(dai) snd_soc_dai_stream_dma_data_get(dai, SNDRV_PCM_STREAM_CAPTURE)
+#define snd_soc_dai_get_dma_data snd_soc_dai_stream_dma_data_get
+#define snd_soc_dai_dma_data_get snd_soc_dai_stream_dma_data_get
+#define snd_soc_dai_dma_data_set_playback(dai, data) snd_soc_dai_stream_dma_data_set(dai, SNDRV_PCM_STREAM_PLAYBACK, data)
+#define snd_soc_dai_dma_data_set_capture(dai, data) snd_soc_dai_stream_dma_data_set(dai, SNDRV_PCM_STREAM_CAPTURE, data)
+#define snd_soc_dai_set_dma_data snd_soc_dai_stream_dma_data_set
+#define snd_soc_dai_dma_data_set snd_soc_dai_stream_dma_data_set
+static inline void snd_soc_dai_init_dma_data(struct snd_soc_dai *dai, void *playback, void *capture)
+{
+ snd_soc_dai_stream_dma_data_set_playback(dai, playback);
+ snd_soc_dai_stream_dma_data_set_capture(dai, capture);
+}
#endif
diff --git a/sound/soc/soc-dai.c b/sound/soc/soc-dai.c
index 54d8e0eea7a1..8e3d8e056a77 100644
--- a/sound/soc/soc-dai.c
+++ b/sound/soc/soc-dai.c
@@ -1093,6 +1093,18 @@ void snd_soc_dai_stream_widget_set(struct snd_soc_dai *dai, int stream, struct s
}
EXPORT_SYMBOL_GPL(snd_soc_dai_stream_widget_set);
+void *snd_soc_dai_stream_dma_data_get_i(const struct snd_soc_dai *dai, int stream)
+{
+ return dai->stream[stream].dma_data;
+}
+EXPORT_SYMBOL_GPL(snd_soc_dai_stream_dma_data_get_i);
+
+void snd_soc_dai_stream_dma_data_set_i(struct snd_soc_dai *dai, int stream, void *data)
+{
+ dai->stream[stream].dma_data = data;
+}
+EXPORT_SYMBOL_GPL(snd_soc_dai_stream_dma_data_set_i);
+
void snd_soc_dai_unregister(struct snd_soc_dai *dai)
{
lockdep_assert_held(&client_mutex);