Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit 2264cf2e authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files

ASoC: rsnd: fixup TDM Split mode check for CTU



Renesas sound card need to judge that whether it is using
"TDM Split mode". To judge it and for other purpose, it has
rsnd_parse_connect_simple() and rsnd_parse_connect_graph(),
but these are using different judgement policy for
TDM Split mode.
It is pointless and confusable.
This patch add new rsnd_parse_tdm_split_mode() and use common
judgement policy for simple-card/audio-graph.

Without this patch, CTU will be judged as TDM Split mode
on audio-graph card.

Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent f497c88b
Loading
Loading
Loading
Loading
+12 −13
Original line number Diff line number Diff line
@@ -1031,7 +1031,7 @@ static const struct snd_soc_dai_ops rsnd_soc_dai_ops = {
	.prepare	= rsnd_soc_dai_prepare,
};

static void rsnd_parse_connect_simple(struct rsnd_priv *priv,
static void rsnd_parse_tdm_split_mode(struct rsnd_priv *priv,
				      struct rsnd_dai_stream *io,
				      struct device_node *dai_np)
{
@@ -1044,9 +1044,6 @@ static void rsnd_parse_connect_simple(struct rsnd_priv *priv,
	if (!ssiu_np)
		return;

	if (!rsnd_io_to_mod_ssi(io))
		return;

	/*
	 * This driver assumes that it is TDM Split mode
	 * if it includes ssiu node
@@ -1071,12 +1068,21 @@ static void rsnd_parse_connect_simple(struct rsnd_priv *priv,
	}
}

static void rsnd_parse_connect_simple(struct rsnd_priv *priv,
				      struct rsnd_dai_stream *io,
				      struct device_node *dai_np)
{
	if (!rsnd_io_to_mod_ssi(io))
		return;

	rsnd_parse_tdm_split_mode(priv, io, dai_np);
}

static void rsnd_parse_connect_graph(struct rsnd_priv *priv,
				     struct rsnd_dai_stream *io,
				     struct device_node *endpoint)
{
	struct device *dev = rsnd_priv_to_dev(priv);
	struct device_node *remote_port = of_graph_get_remote_port(endpoint);
	struct device_node *remote_node = of_graph_get_remote_port_parent(endpoint);

	if (!rsnd_io_to_mod_ssi(io))
@@ -1094,14 +1100,7 @@ static void rsnd_parse_connect_graph(struct rsnd_priv *priv,
		dev_dbg(dev, "%s connected to HDMI1\n", io->name);
	}

	/*
	 * This driver assumes that it is TDM Split mode
	 * if remote node has multi endpoint
	 */
	if (of_get_child_count(remote_port) > 1) {
		rsnd_flags_set(io, RSND_STREAM_TDM_SPLIT);
		dev_dbg(dev, "%s is part of TDM Split\n", io->name);
	}
	rsnd_parse_tdm_split_mode(priv, io, endpoint);
}

void rsnd_parse_connect_common(struct rsnd_dai *rdai,