devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/2] ASoC: audio-graph-card2: Introduce playback-only/capture-only DAI link flags
@ 2023-11-28  8:11 Daniel Baluta
  2023-11-28  8:11 ` [PATCH v4 1/2] " Daniel Baluta
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Daniel Baluta @ 2023-11-28  8:11 UTC (permalink / raw)
  To: broonie, robh+dt
  Cc: kuninori.morimoto.gx, devicetree, linux-kernel, lgirdwood,
	daniel.baluta, alsa-devel, iuliana.prodan, shengjiu.wang

From: Daniel Baluta <daniel.baluta@nxp.com>

This patchseries allows users to specify a link only direction with
audio-graph-card2.

Changes since v1 - https://lore.kernel.org/lkml/20230801082433.548206-1-daniel.baluta@oss.nxp.com/T/
     - used audio-graph-card2 instead of simple-card as we are deprecting simple-card.

Changes since v2:
     - Fix device tree binding error reported by Rob

Changes since v3:
     - Add signed-off-by line to patch 1/2
     - Enhance commit messsage for patch 1/2 to explain why the patch is needed.

Daniel Baluta (2):
  ASoC: audio-graph-card2: Introduce playback-only/capture-only DAI link
    flags
  ASoC: dt-bindings: audio-graph-port: Document new DAI link flags
    playback-only/capture-only

 .../bindings/sound/audio-graph-port.yaml      |  6 ++++++
 include/sound/simple_card_utils.h             |  3 +++
 sound/soc/generic/audio-graph-card2.c         |  6 ++++++
 sound/soc/generic/simple-card-utils.c         | 19 +++++++++++++++++++
 4 files changed, 34 insertions(+)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v4 1/2] ASoC: audio-graph-card2: Introduce playback-only/capture-only DAI link flags
  2023-11-28  8:11 [PATCH v4 0/2] ASoC: audio-graph-card2: Introduce playback-only/capture-only DAI link flags Daniel Baluta
@ 2023-11-28  8:11 ` Daniel Baluta
  2023-11-28  8:11 ` [PATCH v4 2/2] ASoC: dt-bindings: audio-graph-port: Document new DAI link flags playback-only/capture-only Daniel Baluta
  2023-12-14 13:37 ` [PATCH v4 0/2] ASoC: audio-graph-card2: Introduce playback-only/capture-only DAI link flags Mark Brown
  2 siblings, 0 replies; 5+ messages in thread
From: Daniel Baluta @ 2023-11-28  8:11 UTC (permalink / raw)
  To: broonie, robh+dt
  Cc: kuninori.morimoto.gx, devicetree, linux-kernel, lgirdwood,
	daniel.baluta, alsa-devel, iuliana.prodan, shengjiu.wang

From: Daniel Baluta <daniel.baluta@nxp.com>

We need this to support MICFIL PDM found on i.MX8MP where the DAI link
supports only capture direction.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
 include/sound/simple_card_utils.h     |  3 +++
 sound/soc/generic/audio-graph-card2.c |  6 ++++++
 sound/soc/generic/simple-card-utils.c | 19 +++++++++++++++++++
 3 files changed, 28 insertions(+)

diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h
index e5da10b4c43b..ad67957b7b48 100644
--- a/include/sound/simple_card_utils.h
+++ b/include/sound/simple_card_utils.h
@@ -195,6 +195,9 @@ int graph_util_is_ports0(struct device_node *port);
 int graph_util_parse_dai(struct device *dev, struct device_node *ep,
 			 struct snd_soc_dai_link_component *dlc, int *is_single_link);
 
+int graph_util_parse_link_direction(struct device_node *np,
+				    bool *is_playback_only, bool *is_capture_only);
+
 #ifdef DEBUG
 static inline void simple_util_debug_dai(struct simple_util_priv *priv,
 					 char *name,
diff --git a/sound/soc/generic/audio-graph-card2.c b/sound/soc/generic/audio-graph-card2.c
index 7146611df730..04c2eac881c2 100644
--- a/sound/soc/generic/audio-graph-card2.c
+++ b/sound/soc/generic/audio-graph-card2.c
@@ -597,6 +597,7 @@ static void graph_link_init(struct simple_util_priv *priv,
 	struct device_node *ep;
 	struct device_node *ports;
 	unsigned int daifmt = 0, daiclk = 0;
+	bool playback_only = 0, capture_only = 0;
 	unsigned int bit_frame = 0;
 
 	if (graph_lnk_is_multi(port)) {
@@ -635,6 +636,11 @@ static void graph_link_init(struct simple_util_priv *priv,
 	if (is_cpu_node)
 		daiclk = snd_soc_daifmt_clock_provider_flipped(daiclk);
 
+	graph_util_parse_link_direction(port, &playback_only, &capture_only);
+
+	dai_link->playback_only = playback_only;
+	dai_link->capture_only = capture_only;
+
 	dai_link->dai_fmt	= daifmt | daiclk;
 	dai_link->init		= simple_util_dai_init;
 	dai_link->ops		= &graph_ops;
diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c
index cfa70a56ff0f..9006ef5e95f5 100644
--- a/sound/soc/generic/simple-card-utils.c
+++ b/sound/soc/generic/simple-card-utils.c
@@ -1129,6 +1129,25 @@ int graph_util_parse_dai(struct device *dev, struct device_node *ep,
 }
 EXPORT_SYMBOL_GPL(graph_util_parse_dai);
 
+int graph_util_parse_link_direction(struct device_node *np,
+				    bool *playback_only, bool *capture_only)
+{
+	bool is_playback_only = false;
+	bool is_capture_only = false;
+
+	is_playback_only = of_property_read_bool(np, "playback-only");
+	is_capture_only = of_property_read_bool(np, "capture-only");
+
+	if (is_playback_only && is_capture_only)
+		return -EINVAL;
+
+	*playback_only = is_playback_only;
+	*capture_only = is_capture_only;
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(graph_util_parse_link_direction);
+
 /* Module information */
 MODULE_AUTHOR("Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>");
 MODULE_DESCRIPTION("ALSA SoC Simple Card Utils");
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v4 2/2] ASoC: dt-bindings: audio-graph-port: Document new DAI link flags playback-only/capture-only
  2023-11-28  8:11 [PATCH v4 0/2] ASoC: audio-graph-card2: Introduce playback-only/capture-only DAI link flags Daniel Baluta
  2023-11-28  8:11 ` [PATCH v4 1/2] " Daniel Baluta
@ 2023-11-28  8:11 ` Daniel Baluta
  2023-11-29 14:54   ` Rob Herring
  2023-12-14 13:37 ` [PATCH v4 0/2] ASoC: audio-graph-card2: Introduce playback-only/capture-only DAI link flags Mark Brown
  2 siblings, 1 reply; 5+ messages in thread
From: Daniel Baluta @ 2023-11-28  8:11 UTC (permalink / raw)
  To: broonie, robh+dt
  Cc: kuninori.morimoto.gx, devicetree, linux-kernel, lgirdwood,
	daniel.baluta, alsa-devel, iuliana.prodan, shengjiu.wang

From: Daniel Baluta <daniel.baluta@nxp.com>

Document new playback-only and capture-only flags which can be used
when dai link can only support just one direction: playback or capture
but not both.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
---
 .../devicetree/bindings/sound/audio-graph-port.yaml         | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/audio-graph-port.yaml b/Documentation/devicetree/bindings/sound/audio-graph-port.yaml
index 60b5e3fd1115..b13c08de505e 100644
--- a/Documentation/devicetree/bindings/sound/audio-graph-port.yaml
+++ b/Documentation/devicetree/bindings/sound/audio-graph-port.yaml
@@ -19,6 +19,12 @@ definitions:
     properties:
       mclk-fs:
         $ref: simple-card.yaml#/definitions/mclk-fs
+      playback-only:
+        description: port connection used only for playback
+        $ref: /schemas/types.yaml#/definitions/flag
+      capture-only:
+        description: port connection used only for capture
+        $ref: /schemas/types.yaml#/definitions/flag
 
   endpoint-base:
     allOf:
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v4 2/2] ASoC: dt-bindings: audio-graph-port: Document new DAI link flags playback-only/capture-only
  2023-11-28  8:11 ` [PATCH v4 2/2] ASoC: dt-bindings: audio-graph-port: Document new DAI link flags playback-only/capture-only Daniel Baluta
@ 2023-11-29 14:54   ` Rob Herring
  0 siblings, 0 replies; 5+ messages in thread
From: Rob Herring @ 2023-11-29 14:54 UTC (permalink / raw)
  To: Daniel Baluta
  Cc: broonie, kuninori.morimoto.gx, devicetree, linux-kernel,
	lgirdwood, daniel.baluta, alsa-devel, iuliana.prodan,
	shengjiu.wang

On Tue, Nov 28, 2023 at 10:11:19AM +0200, Daniel Baluta wrote:
> From: Daniel Baluta <daniel.baluta@nxp.com>
> 
> Document new playback-only and capture-only flags which can be used
> when dai link can only support just one direction: playback or capture
> but not both.
> 
> Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
> ---
>  .../devicetree/bindings/sound/audio-graph-port.yaml         | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/sound/audio-graph-port.yaml b/Documentation/devicetree/bindings/sound/audio-graph-port.yaml
> index 60b5e3fd1115..b13c08de505e 100644
> --- a/Documentation/devicetree/bindings/sound/audio-graph-port.yaml
> +++ b/Documentation/devicetree/bindings/sound/audio-graph-port.yaml
> @@ -19,6 +19,12 @@ definitions:
>      properties:
>        mclk-fs:
>          $ref: simple-card.yaml#/definitions/mclk-fs
> +      playback-only:
> +        description: port connection used only for playback
> +        $ref: /schemas/types.yaml#/definitions/flag
> +      capture-only:
> +        description: port connection used only for capture
> +        $ref: /schemas/types.yaml#/definitions/flag

It seems like we have a random mix of port and endpoint properties here 
and I can't tell what's the logic for deciding the right place. 
Everything in port is also in endpoint, so maybe using port is 
deprecated. In most cases for graph bindings, we put properties in 
endpoint nodes.

Rob

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v4 0/2] ASoC: audio-graph-card2: Introduce playback-only/capture-only DAI link flags
  2023-11-28  8:11 [PATCH v4 0/2] ASoC: audio-graph-card2: Introduce playback-only/capture-only DAI link flags Daniel Baluta
  2023-11-28  8:11 ` [PATCH v4 1/2] " Daniel Baluta
  2023-11-28  8:11 ` [PATCH v4 2/2] ASoC: dt-bindings: audio-graph-port: Document new DAI link flags playback-only/capture-only Daniel Baluta
@ 2023-12-14 13:37 ` Mark Brown
  2 siblings, 0 replies; 5+ messages in thread
From: Mark Brown @ 2023-12-14 13:37 UTC (permalink / raw)
  To: robh+dt, Daniel Baluta
  Cc: kuninori.morimoto.gx, devicetree, linux-kernel, lgirdwood,
	daniel.baluta, alsa-devel, iuliana.prodan, shengjiu.wang

On Tue, 28 Nov 2023 10:11:17 +0200, Daniel Baluta wrote:
> This patchseries allows users to specify a link only direction with
> audio-graph-card2.
> 
> Changes since v1 - https://lore.kernel.org/lkml/20230801082433.548206-1-daniel.baluta@oss.nxp.com/T/
>      - used audio-graph-card2 instead of simple-card as we are deprecting simple-card.
> 
> Changes since v2:
>      - Fix device tree binding error reported by Rob
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/2] ASoC: audio-graph-card2: Introduce playback-only/capture-only DAI link flags
      commit: d29351e8c20d61a852bbdfcab7bb7166bd916558
[2/2] ASoC: dt-bindings: audio-graph-port: Document new DAI link flags playback-only/capture-only
      commit: af29e51bee8223d8b26e574489d2433b88cdeb2f

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-12-14 13:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-28  8:11 [PATCH v4 0/2] ASoC: audio-graph-card2: Introduce playback-only/capture-only DAI link flags Daniel Baluta
2023-11-28  8:11 ` [PATCH v4 1/2] " Daniel Baluta
2023-11-28  8:11 ` [PATCH v4 2/2] ASoC: dt-bindings: audio-graph-port: Document new DAI link flags playback-only/capture-only Daniel Baluta
2023-11-29 14:54   ` Rob Herring
2023-12-14 13:37 ` [PATCH v4 0/2] ASoC: audio-graph-card2: Introduce playback-only/capture-only DAI link flags Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).