All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
To: Mark Brown <broonie@kernel.org>
Cc: Linux-ALSA <alsa-devel@alsa-project.org>
Subject: [PATCH v2 08/12] ASoC: simple-card-utils: add simple_props_to_xxx() macro
Date: 12 Apr 2021 08:52:32 +0900	[thread overview]
Message-ID: <87k0p8wf9b.wl-kuninori.morimoto.gx@renesas.com> (raw)
In-Reply-To: <87v98swfar.wl-kuninori.morimoto.gx@renesas.com>

From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>

We shouldn't use dai_props->cpus/codecs/cpu_dai/codec_dai/codec_conf
directly, because these are array to supporting multi CPU/Codec/Platform.
This patch adds asoc_link_to_xxx() macro for it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
---
 include/sound/simple_card_utils.h | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)

diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h
index e366e432c475..78b6cf0194d2 100644
--- a/include/sound/simple_card_utils.h
+++ b/include/sound/simple_card_utils.h
@@ -74,32 +74,45 @@ struct asoc_simple_priv {
 #define simple_priv_to_dev(priv)	(simple_priv_to_card(priv)->dev)
 #define simple_priv_to_link(priv, i)	(simple_priv_to_card(priv)->dai_link + (i))
 
+#define simple_props_to_dlc_cpu(props, i)	((props)->cpus + i)
+#define simple_props_to_dlc_codec(props, i)	((props)->codecs + i)
+#define simple_props_to_dlc_platform(props, i)	((props)->platforms + i)
+
+#define simple_props_to_dai_cpu(props, i)	((props)->cpu_dai + i)
+#define simple_props_to_dai_codec(props, i)	((props)->codec_dai + i)
+#define simple_props_to_codec_conf(props, i)	((props)->codec_conf + i)
+
 #define for_each_prop_dlc_cpus(props, i, cpu)				\
 	for ((i) = 0;							\
-	     ((i) < (props)->num.cpus) && ((cpu) = &(props)->cpus[i]);	\
+	     ((i) < (props)->num.cpus) &&				\
+		     ((cpu) = simple_props_to_dlc_cpu(props, i));	\
 	     (i)++)
-#define for_each_prop_dlc_codecs(props, i, codec)				\
+#define for_each_prop_dlc_codecs(props, i, codec)			\
 	for ((i) = 0;							\
-	     ((i) < (props)->num.codecs) && ((codec) = &(props)->codecs[i]); \
+	     ((i) < (props)->num.codecs) &&				\
+		     ((codec) = simple_props_to_dlc_codec(props, i));	\
 	     (i)++)
 #define for_each_prop_dlc_platforms(props, i, platform)			\
 	for ((i) = 0;							\
-	     ((i) < (props)->num.platforms) && ((platform) = &(props)->platforms[i]); \
+	     ((i) < (props)->num.platforms) &&				\
+		     ((platform) = simple_props_to_dlc_platform(props, i)); \
 	     (i)++)
 #define for_each_prop_codec_conf(props, i, conf)			\
 	for ((i) = 0;							\
 	     ((i) < (props)->num.codecs) &&				\
 		     (props)->codec_conf &&				\
-		     ((conf) = &(props)->codec_conf[i]);		\
+		     ((conf) = simple_props_to_codec_conf(props, i));	\
 	     (i)++)
 
 #define for_each_prop_dai_cpu(props, i, cpu)				\
 	for ((i) = 0;							\
-	     ((i) < (props)->num.cpus) && ((cpu) = &(props)->cpu_dai[i]); \
+	     ((i) < (props)->num.cpus) &&				\
+		     ((cpu) = simple_props_to_dai_cpu(props, i));	\
 	     (i)++)
 #define for_each_prop_dai_codec(props, i, codec)			\
 	for ((i) = 0;							\
-	     ((i) < (props)->num.codecs) && ((codec) = &(props)->codec_dai[i]); \
+	     ((i) < (props)->num.codecs) &&				\
+		     ((codec) = simple_props_to_dai_codec(props, i));	\
 	     (i)++)
 
 struct link_info {
-- 
2.25.1


  parent reply	other threads:[~2021-04-11 23:56 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-11 23:51 [PATCH v2 00/12] ASoC: simple-card-utils: prepare for multi support Kuninori Morimoto
2021-04-11 23:51 ` [PATCH v2 01/12] ASoC: simple-card-utils: setup dai_props cpu_dai/codec_dai at initial timing Kuninori Morimoto
2021-04-11 23:52 ` [PATCH v2 02/12] ASoC: simple-card-utils: remove li->dais/li->conf Kuninori Morimoto
2021-04-11 23:52 ` [PATCH v2 03/12] ASoC: simple-card-utils: use for_each_prop_xxx() Kuninori Morimoto
2021-04-11 23:52 ` [PATCH v2 04/12] ASoC: simple-card-utils: remove asoc_simple_parse_xxx() Kuninori Morimoto
2021-04-11 23:52 ` [PATCH v2 05/12] ASoC: simple-card-utils: care multi DAI at asoc_simple_clean_reference() Kuninori Morimoto
2021-04-11 23:52 ` [PATCH v2 06/12] ASoC: simple-card-utils: indicate dai_fmt if exist Kuninori Morimoto
2021-04-11 23:52 ` [PATCH v2 07/12] ASoC: simple-card-utils: indicate missing CPU/Codec numbers for debug Kuninori Morimoto
2021-04-11 23:52 ` Kuninori Morimoto [this message]
2021-04-11 23:52 ` [PATCH v2 09/12] ASoC: simple-card-utils: multi support at asoc_simple_canonicalize_cpu/platform() Kuninori Morimoto
2021-04-11 23:52 ` [PATCH v2 10/12] ASoC: simple-card-utils: tidyup debug info for clock Kuninori Morimoto
2021-04-11 23:52 ` [PATCH v2 11/12] ASoC: simple-card-utils: tidyup dev_dbg() to use 1 line Kuninori Morimoto
2021-04-11 23:53 ` [PATCH v2 12/12] ASoC: simple-card-utils: tidyup asoc_simple_parse_convert() Kuninori Morimoto
2021-04-13 15:08 ` [PATCH v2 00/12] ASoC: simple-card-utils: prepare for multi support Mark Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k0p8wf9b.wl-kuninori.morimoto.gx@renesas.com \
    --to=kuninori.morimoto.gx@renesas.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.