Unverified Commit 02921765 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown
Browse files
parent bea63e8b
Loading
Loading
Loading
Loading
+29 −2
Original line number Diff line number Diff line
@@ -756,10 +756,10 @@ static int rsnd_soc_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)

	/* set clock master for audio interface */
	switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
	case SND_SOC_DAIFMT_CBM_CFM:
	case SND_SOC_DAIFMT_CBP_CFP:
		rdai->clk_master = 0;
		break;
	case SND_SOC_DAIFMT_CBS_CFS:
	case SND_SOC_DAIFMT_CBC_CFC:
		rdai->clk_master = 1; /* cpu is master */
		break;
	default:
@@ -1039,6 +1039,31 @@ static int rsnd_soc_dai_prepare(struct snd_pcm_substream *substream,
	return rsnd_dai_call(prepare, io, priv);
}

static u64 rsnd_soc_dai_formats[] = {
	/*
	 * 1st Priority
	 *
	 * Well tested formats.
	 * Select below from Sound Card, not auto
	 *	SND_SOC_DAIFMT_CBC_CFC
	 *	SND_SOC_DAIFMT_CBP_CFP
	 */
	SND_SOC_POSSIBLE_DAIFMT_I2S	|
	SND_SOC_POSSIBLE_DAIFMT_RIGHT_J	|
	SND_SOC_POSSIBLE_DAIFMT_LEFT_J	|
	SND_SOC_POSSIBLE_DAIFMT_NB_NF	|
	SND_SOC_POSSIBLE_DAIFMT_NB_IF	|
	SND_SOC_POSSIBLE_DAIFMT_IB_NF	|
	SND_SOC_POSSIBLE_DAIFMT_IB_IF,
	/*
	 * 2nd Priority
	 *
	 * Supported, but not well tested
	 */
	SND_SOC_POSSIBLE_DAIFMT_DSP_A	|
	SND_SOC_POSSIBLE_DAIFMT_DSP_B,
};

static const struct snd_soc_dai_ops rsnd_soc_dai_ops = {
	.startup	= rsnd_soc_dai_startup,
	.shutdown	= rsnd_soc_dai_shutdown,
@@ -1046,6 +1071,8 @@ static const struct snd_soc_dai_ops rsnd_soc_dai_ops = {
	.set_fmt	= rsnd_soc_dai_set_fmt,
	.set_tdm_slot	= rsnd_soc_set_dai_tdm_slot,
	.prepare	= rsnd_soc_dai_prepare,
	.auto_selectable_formats	= rsnd_soc_dai_formats,
	.num_auto_selectable_formats	= ARRAY_SIZE(rsnd_soc_dai_formats),
};

static void rsnd_parse_tdm_split_mode(struct rsnd_priv *priv,