All of lore.kernel.org
 help / color / mirror / Atom feed
From: luca.ceresoli@bootlin.com
To: alsa-devel@alsa-project.org, linux-rockchip@lists.infradead.org
Cc: Luca Ceresoli <luca.ceresoli@bootlin.com>,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Heiko Stuebner <heiko@sntech.de>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	Nicolas Frattaroli <frattaroli.nicolas@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Johan Jonker <jbx6244@gmail.com>,
	Chris Morgan <macromorgan@hotmail.com>
Subject: [PATCH 6/8] ASoC: audio-graph: let dai_link->init be overridable
Date: Wed,  7 Sep 2022 16:21:22 +0200	[thread overview]
Message-ID: <20220907142124.2532620-7-luca.ceresoli@bootlin.com> (raw)
In-Reply-To: <20220907142124.2532620-1-luca.ceresoli@bootlin.com>

From: Luca Ceresoli <luca.ceresoli@bootlin.com>

We can already override dai_link->ops via a custom pointer in
asoc_simple_priv. Do the same for dai_link->init.

This is needed for a card that need to call .set_sysclk multiple times to
initialize more than one clock. The current code does not allow to do it
cleanly.

Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
 include/sound/simple_card_utils.h    | 1 +
 sound/soc/generic/audio-graph-card.c | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h
index a0b827f0c2f6..60dab5f68f5e 100644
--- a/include/sound/simple_card_utils.h
+++ b/include/sound/simple_card_utils.h
@@ -75,6 +75,7 @@ struct asoc_simple_priv {
 	struct snd_soc_dai_link_component dummy;
 	struct snd_soc_codec_conf *codec_conf;
 	struct gpio_desc *pa_gpio;
+	int (*init)(struct snd_soc_pcm_runtime *rtd);
 	const struct snd_soc_ops *ops;
 	unsigned int dpcm_selectable:1;
 	unsigned int force_dpcm:1;
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index b327372f2e4a..38c05eb1c650 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -263,6 +263,8 @@ static int graph_link_init(struct asoc_simple_priv *priv,
 
 	dai_link->init		= asoc_simple_dai_init;
 	dai_link->ops		= &graph_ops;
+	if (priv->init)
+		dai_link->init	= priv->init;
 	if (priv->ops)
 		dai_link->ops	= priv->ops;
 
-- 
2.34.1


WARNING: multiple messages have this Message-ID (diff)
From: luca.ceresoli@bootlin.com
To: alsa-devel@alsa-project.org, linux-rockchip@lists.infradead.org
Cc: devicetree@vger.kernel.org, Heiko Stuebner <heiko@sntech.de>,
	Takashi Iwai <tiwai@suse.com>,
	Chris Morgan <macromorgan@hotmail.com>,
	linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	Liam Girdwood <lgirdwood@gmail.com>,
	Nicolas Frattaroli <frattaroli.nicolas@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Johan Jonker <jbx6244@gmail.com>,
	Luca Ceresoli <luca.ceresoli@bootlin.com>,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH 6/8] ASoC: audio-graph: let dai_link->init be overridable
Date: Wed,  7 Sep 2022 16:21:22 +0200	[thread overview]
Message-ID: <20220907142124.2532620-7-luca.ceresoli@bootlin.com> (raw)
In-Reply-To: <20220907142124.2532620-1-luca.ceresoli@bootlin.com>

From: Luca Ceresoli <luca.ceresoli@bootlin.com>

We can already override dai_link->ops via a custom pointer in
asoc_simple_priv. Do the same for dai_link->init.

This is needed for a card that need to call .set_sysclk multiple times to
initialize more than one clock. The current code does not allow to do it
cleanly.

Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
 include/sound/simple_card_utils.h    | 1 +
 sound/soc/generic/audio-graph-card.c | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h
index a0b827f0c2f6..60dab5f68f5e 100644
--- a/include/sound/simple_card_utils.h
+++ b/include/sound/simple_card_utils.h
@@ -75,6 +75,7 @@ struct asoc_simple_priv {
 	struct snd_soc_dai_link_component dummy;
 	struct snd_soc_codec_conf *codec_conf;
 	struct gpio_desc *pa_gpio;
+	int (*init)(struct snd_soc_pcm_runtime *rtd);
 	const struct snd_soc_ops *ops;
 	unsigned int dpcm_selectable:1;
 	unsigned int force_dpcm:1;
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index b327372f2e4a..38c05eb1c650 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -263,6 +263,8 @@ static int graph_link_init(struct asoc_simple_priv *priv,
 
 	dai_link->init		= asoc_simple_dai_init;
 	dai_link->ops		= &graph_ops;
+	if (priv->init)
+		dai_link->init	= priv->init;
 	if (priv->ops)
 		dai_link->ops	= priv->ops;
 
-- 
2.34.1


WARNING: multiple messages have this Message-ID (diff)
From: luca.ceresoli@bootlin.com
To: alsa-devel@alsa-project.org, linux-rockchip@lists.infradead.org
Cc: Luca Ceresoli <luca.ceresoli@bootlin.com>,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Heiko Stuebner <heiko@sntech.de>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	Nicolas Frattaroli <frattaroli.nicolas@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Johan Jonker <jbx6244@gmail.com>,
	Chris Morgan <macromorgan@hotmail.com>
Subject: [PATCH 6/8] ASoC: audio-graph: let dai_link->init be overridable
Date: Wed,  7 Sep 2022 16:21:22 +0200	[thread overview]
Message-ID: <20220907142124.2532620-7-luca.ceresoli@bootlin.com> (raw)
In-Reply-To: <20220907142124.2532620-1-luca.ceresoli@bootlin.com>

From: Luca Ceresoli <luca.ceresoli@bootlin.com>

We can already override dai_link->ops via a custom pointer in
asoc_simple_priv. Do the same for dai_link->init.

This is needed for a card that need to call .set_sysclk multiple times to
initialize more than one clock. The current code does not allow to do it
cleanly.

Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
 include/sound/simple_card_utils.h    | 1 +
 sound/soc/generic/audio-graph-card.c | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h
index a0b827f0c2f6..60dab5f68f5e 100644
--- a/include/sound/simple_card_utils.h
+++ b/include/sound/simple_card_utils.h
@@ -75,6 +75,7 @@ struct asoc_simple_priv {
 	struct snd_soc_dai_link_component dummy;
 	struct snd_soc_codec_conf *codec_conf;
 	struct gpio_desc *pa_gpio;
+	int (*init)(struct snd_soc_pcm_runtime *rtd);
 	const struct snd_soc_ops *ops;
 	unsigned int dpcm_selectable:1;
 	unsigned int force_dpcm:1;
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index b327372f2e4a..38c05eb1c650 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -263,6 +263,8 @@ static int graph_link_init(struct asoc_simple_priv *priv,
 
 	dai_link->init		= asoc_simple_dai_init;
 	dai_link->ops		= &graph_ops;
+	if (priv->init)
+		dai_link->init	= priv->init;
 	if (priv->ops)
 		dai_link->ops	= priv->ops;
 
-- 
2.34.1


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

WARNING: multiple messages have this Message-ID (diff)
From: luca.ceresoli@bootlin.com
To: alsa-devel@alsa-project.org, linux-rockchip@lists.infradead.org
Cc: Luca Ceresoli <luca.ceresoli@bootlin.com>,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, Liam Girdwood <lgirdwood@gmail.com>,
	Mark Brown <broonie@kernel.org>, Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Heiko Stuebner <heiko@sntech.de>,
	Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
	Nicolas Frattaroli <frattaroli.nicolas@gmail.com>,
	Philipp Zabel <p.zabel@pengutronix.de>,
	Johan Jonker <jbx6244@gmail.com>,
	Chris Morgan <macromorgan@hotmail.com>
Subject: [PATCH 6/8] ASoC: audio-graph: let dai_link->init be overridable
Date: Wed,  7 Sep 2022 16:21:22 +0200	[thread overview]
Message-ID: <20220907142124.2532620-7-luca.ceresoli@bootlin.com> (raw)
In-Reply-To: <20220907142124.2532620-1-luca.ceresoli@bootlin.com>

From: Luca Ceresoli <luca.ceresoli@bootlin.com>

We can already override dai_link->ops via a custom pointer in
asoc_simple_priv. Do the same for dai_link->init.

This is needed for a card that need to call .set_sysclk multiple times to
initialize more than one clock. The current code does not allow to do it
cleanly.

Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
---
 include/sound/simple_card_utils.h    | 1 +
 sound/soc/generic/audio-graph-card.c | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h
index a0b827f0c2f6..60dab5f68f5e 100644
--- a/include/sound/simple_card_utils.h
+++ b/include/sound/simple_card_utils.h
@@ -75,6 +75,7 @@ struct asoc_simple_priv {
 	struct snd_soc_dai_link_component dummy;
 	struct snd_soc_codec_conf *codec_conf;
 	struct gpio_desc *pa_gpio;
+	int (*init)(struct snd_soc_pcm_runtime *rtd);
 	const struct snd_soc_ops *ops;
 	unsigned int dpcm_selectable:1;
 	unsigned int force_dpcm:1;
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index b327372f2e4a..38c05eb1c650 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -263,6 +263,8 @@ static int graph_link_init(struct asoc_simple_priv *priv,
 
 	dai_link->init		= asoc_simple_dai_init;
 	dai_link->ops		= &graph_ops;
+	if (priv->init)
+		dai_link->init	= priv->init;
 	if (priv->ops)
 		dai_link->ops	= priv->ops;
 
-- 
2.34.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2022-09-07 14:22 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-07 14:21 [PATCH 0/8] Add support for the internal RK3308 audio codec luca.ceresoli
2022-09-07 14:21 ` luca.ceresoli
2022-09-07 14:21 ` luca.ceresoli
2022-09-07 14:21 ` luca.ceresoli
2022-09-07 14:21 ` [PATCH 1/8] ASoC: rockchip: rk3308: add internal audio codec bindings luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-08 11:53   ` Krzysztof Kozlowski
2022-09-08 11:53     ` Krzysztof Kozlowski
2022-09-08 11:53     ` Krzysztof Kozlowski
2022-09-08 11:53     ` Krzysztof Kozlowski
2022-09-07 14:21 ` [PATCH 2/8] ASoC: rockchip: rk3308: add audio card bindings luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-08 11:49   ` Krzysztof Kozlowski
2022-09-08 11:49     ` Krzysztof Kozlowski
2022-09-08 11:49     ` Krzysztof Kozlowski
2022-09-08 11:49     ` Krzysztof Kozlowski
2022-09-08 15:20     ` Luca Ceresoli
2022-09-08 15:20       ` Luca Ceresoli
2022-09-08 15:20       ` Luca Ceresoli
2022-09-08 15:20       ` Luca Ceresoli
2022-09-08 15:28       ` Krzysztof Kozlowski
2022-09-08 15:28         ` Krzysztof Kozlowski
2022-09-08 15:28         ` Krzysztof Kozlowski
2022-09-08 15:28         ` Krzysztof Kozlowski
2022-09-07 14:21 ` [PATCH 3/8] arm64: dts: rockchip: add i2s_8ch_2 and i2s_8ch_3 luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21 ` [PATCH 4/8] arm64: dts: rockchip: add the internal audio codec luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-08 11:53   ` Krzysztof Kozlowski
2022-09-08 11:53     ` Krzysztof Kozlowski
2022-09-08 11:53     ` Krzysztof Kozlowski
2022-09-08 11:53     ` Krzysztof Kozlowski
2022-09-07 14:21 ` [PATCH 5/8] ASoC: rockchip: i2s-tdm: Fix clk_id usage in .set_sysclk() luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-08 16:36   ` Mark Brown
2022-09-08 16:36     ` Mark Brown
2022-09-08 16:36     ` Mark Brown
2022-09-08 16:36     ` Mark Brown
2022-09-07 14:21 ` luca.ceresoli [this message]
2022-09-07 14:21   ` [PATCH 6/8] ASoC: audio-graph: let dai_link->init be overridable luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21 ` [PATCH 7/8] ASoC: codecs: Add RK3308 internal audio codec driver luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 17:40   ` kernel test robot
2022-09-07 17:40     ` kernel test robot
2022-09-07 17:40     ` kernel test robot
2022-09-07 19:53   ` kernel test robot
2022-09-07 19:53     ` kernel test robot
2022-09-07 19:53     ` kernel test robot
2022-09-07 19:53     ` kernel test robot
2022-09-08 13:24   ` kernel test robot
2022-09-08 13:35     ` Dan Carpenter
2022-09-08 13:35     ` Dan Carpenter
2022-09-08 13:35     ` Dan Carpenter
2022-09-08 15:33     ` Luca Ceresoli
2022-09-08 15:33       ` Luca Ceresoli
2022-09-08 15:33       ` Luca Ceresoli
2022-09-08 15:33       ` Luca Ceresoli
2022-09-08 15:33       ` Luca Ceresoli
2022-09-08 16:27   ` Mark Brown
2022-09-08 16:27     ` Mark Brown
2022-09-08 16:27     ` Mark Brown
2022-09-08 16:27     ` Mark Brown
2022-09-09 17:11     ` Luca Ceresoli
2022-09-09 17:11       ` Luca Ceresoli
2022-09-09 17:11       ` Luca Ceresoli
2022-09-09 17:11       ` Luca Ceresoli
2022-09-09 23:15   ` kernel test robot
2022-09-09 23:15     ` kernel test robot
2022-09-09 23:15     ` kernel test robot
2022-09-09 23:15     ` kernel test robot
2022-09-07 14:21 ` [PATCH 8/8] ASoC: rockchip: add new RK3308 sound card luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 14:21   ` luca.ceresoli
2022-09-07 15:41 ` [PATCH 0/8] Add support for the internal RK3308 audio codec Mark Brown
2022-09-07 15:41   ` Mark Brown
2022-09-07 15:41   ` Mark Brown
2022-09-07 15:41   ` Mark Brown
2022-09-07 17:15   ` Luca Ceresoli
2022-09-07 17:15     ` Luca Ceresoli
2022-09-07 17:15     ` Luca Ceresoli
2022-09-07 17:15     ` Luca Ceresoli

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=20220907142124.2532620-7-luca.ceresoli@bootlin.com \
    --to=luca.ceresoli@bootlin.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=frattaroli.nicolas@gmail.com \
    --cc=heiko@sntech.de \
    --cc=jbx6244@gmail.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=macromorgan@hotmail.com \
    --cc=p.zabel@pengutronix.de \
    --cc=perex@perex.cz \
    --cc=robh+dt@kernel.org \
    --cc=tiwai@suse.com \
    /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.