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

Commit fe3bd184 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files

ASoC: rsrc-card: move rsrc_card_parse_daifmt() to upper side



This is prepare for DPCM cleanup

Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: default avatarKeita Kobayashi <keita.kobayashi.ym@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 8bd616c4
Loading
Loading
Loading
Loading
+35 −35
Original line number Original line Diff line number Diff line
@@ -171,6 +171,41 @@ static int rsrc_card_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
	return 0;
	return 0;
}
}


static int rsrc_card_parse_daifmt(struct device_node *node,
				  struct rsrc_card_priv *priv,
				  struct device_node *codec,
				  int idx)
{
	struct device_node *bitclkmaster = NULL;
	struct device_node *framemaster = NULL;
	struct rsrc_card_dai_props *dai_props = rsrc_priv_to_props(priv, idx);
	struct rsrc_card_dai *cpu_dai = &dai_props->cpu_dai;
	struct rsrc_card_dai *codec_dai = &dai_props->codec_dai;
	unsigned int daifmt;

	daifmt = snd_soc_of_parse_daifmt(node, NULL,
					 &bitclkmaster, &framemaster);
	daifmt &= ~SND_SOC_DAIFMT_MASTER_MASK;

	if (!bitclkmaster && !framemaster)
		return -EINVAL;

	if (codec == bitclkmaster)
		daifmt |= (codec == framemaster) ?
			SND_SOC_DAIFMT_CBM_CFM : SND_SOC_DAIFMT_CBM_CFS;
	else
		daifmt |= (codec == framemaster) ?
			SND_SOC_DAIFMT_CBS_CFM : SND_SOC_DAIFMT_CBS_CFS;

	cpu_dai->fmt	= daifmt;
	codec_dai->fmt	= daifmt;

	of_node_put(bitclkmaster);
	of_node_put(framemaster);

	return 0;
}

static int
static int
rsrc_card_sub_parse_of(struct rsrc_card_priv *priv,
rsrc_card_sub_parse_of(struct rsrc_card_priv *priv,
		       struct device_node *np,
		       struct device_node *np,
@@ -266,41 +301,6 @@ rsrc_card_sub_parse_of(struct rsrc_card_priv *priv,
	return 0;
	return 0;
}
}


static int rsrc_card_parse_daifmt(struct device_node *node,
				  struct rsrc_card_priv *priv,
				  struct device_node *codec,
				  int idx)
{
	struct device_node *bitclkmaster = NULL;
	struct device_node *framemaster = NULL;
	struct rsrc_card_dai_props *dai_props = rsrc_priv_to_props(priv, idx);
	struct rsrc_card_dai *cpu_dai = &dai_props->cpu_dai;
	struct rsrc_card_dai *codec_dai = &dai_props->codec_dai;
	unsigned int daifmt;

	daifmt = snd_soc_of_parse_daifmt(node, NULL,
					 &bitclkmaster, &framemaster);
	daifmt &= ~SND_SOC_DAIFMT_MASTER_MASK;

	if (!bitclkmaster && !framemaster)
		return -EINVAL;

	if (codec == bitclkmaster)
		daifmt |= (codec == framemaster) ?
			SND_SOC_DAIFMT_CBM_CFM : SND_SOC_DAIFMT_CBM_CFS;
	else
		daifmt |= (codec == framemaster) ?
			SND_SOC_DAIFMT_CBS_CFM : SND_SOC_DAIFMT_CBS_CFS;

	cpu_dai->fmt	= daifmt;
	codec_dai->fmt	= daifmt;

	of_node_put(bitclkmaster);
	of_node_put(framemaster);

	return 0;
}

static int rsrc_card_dai_link_of(struct device_node *node,
static int rsrc_card_dai_link_of(struct device_node *node,
				 struct rsrc_card_priv *priv,
				 struct rsrc_card_priv *priv,
				 int idx)
				 int idx)