Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@kernel.org>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: tiwai@suse.de, alsa-devel@alsa-project.org, broonie@kernel.org,
	irina.tirdea@intel.com
Subject: Applied "ASoC: Intel: bytcr_rt5640: fix dai/clock setup for SSP0 routing" to the asoc tree
Date: Mon, 15 Aug 2016 15:15:51 +0100	[thread overview]
Message-ID: <E1bZIgB-0007Ks-7r@debutante> (raw)
In-Reply-To: <1471037280-17433-10-git-send-email-pierre-louis.bossart@linux.intel.com>

The patch

   ASoC: Intel: bytcr_rt5640: fix dai/clock setup for SSP0 routing

has been applied to the asoc tree at

   git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git 

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

>From 038a50e735c85a7a9fbcda090785a588443ffa26 Mon Sep 17 00:00:00 2001
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Date: Fri, 12 Aug 2016 16:27:52 -0500
Subject: [PATCH] ASoC: Intel: bytcr_rt5640: fix dai/clock setup for SSP0
 routing

SSP0 uses 16 bits 2ch, SSP2 24 bits 2ch

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 sound/soc/intel/boards/bytcr_rt5640.c | 92 ++++++++++++++++++++++++-----------
 1 file changed, 64 insertions(+), 28 deletions(-)

diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
index 4337b5e85921..42c7bd20f54d 100644
--- a/sound/soc/intel/boards/bytcr_rt5640.c
+++ b/sound/soc/intel/boards/bytcr_rt5640.c
@@ -138,8 +138,6 @@ static int byt_rt5640_aif1_hw_params(struct snd_pcm_substream *substream,
 	struct snd_soc_dai *codec_dai = rtd->codec_dai;
 	int ret;
 
-	snd_soc_dai_set_bclk_ratio(codec_dai, 50);
-
 	ret = snd_soc_dai_set_sysclk(codec_dai, RT5640_SCLK_S_PLL1,
 				     params_rate(params) * 512,
 				     SND_SOC_CLOCK_IN);
@@ -148,9 +146,18 @@ static int byt_rt5640_aif1_hw_params(struct snd_pcm_substream *substream,
 		return ret;
 	}
 
-	ret = snd_soc_dai_set_pll(codec_dai, 0, RT5640_PLL1_S_BCLK1,
-				  params_rate(params) * 50,
-				  params_rate(params) * 512);
+	if ((byt_rt5640_quirk & BYT_RT5640_SSP0_AIF1) ||
+		(byt_rt5640_quirk & BYT_RT5640_SSP0_AIF2)) {
+
+		ret = snd_soc_dai_set_pll(codec_dai, 0, RT5640_PLL1_S_BCLK1,
+					params_rate(params) * 32, /* FIXME */
+					params_rate(params) * 512);
+	} else {
+		ret = snd_soc_dai_set_pll(codec_dai, 0, RT5640_PLL1_S_BCLK1,
+					params_rate(params) * 50,
+					params_rate(params) * 512);
+	}
+
 	if (ret < 0) {
 		dev_err(rtd->dev, "can't set codec pll: %d\n", ret);
 		return ret;
@@ -311,34 +318,63 @@ static int byt_rt5640_codec_fixup(struct snd_soc_pcm_runtime *rtd,
 						SNDRV_PCM_HW_PARAM_CHANNELS);
 	int ret;
 
-	/* The DSP will covert the FE rate to 48k, stereo, 24bits */
+	/* The DSP will covert the FE rate to 48k, stereo */
 	rate->min = rate->max = 48000;
 	channels->min = channels->max = 2;
 
-	/* set SSP2 to 24-bit */
-	params_set_format(params, SNDRV_PCM_FORMAT_S24_LE);
-
-	/*
-	 * Default mode for SSP configuration is TDM 4 slot, override config
-	 * with explicit setting to I2S 2ch 24-bit. The word length is set with
-	 * dai_set_tdm_slot() since there is no other API exposed
-	 */
-	ret = snd_soc_dai_set_fmt(rtd->cpu_dai,
-				  SND_SOC_DAIFMT_I2S     |
-				  SND_SOC_DAIFMT_NB_IF   |
-				  SND_SOC_DAIFMT_CBS_CFS
-				  );
-	if (ret < 0) {
-		dev_err(rtd->dev, "can't set format to I2S, err %d\n", ret);
-		return ret;
-	}
+	if ((byt_rt5640_quirk & BYT_RT5640_SSP0_AIF1) ||
+		(byt_rt5640_quirk & BYT_RT5640_SSP0_AIF2)) {
+
+		/* set SSP2 to 16-bit */
+		params_set_format(params, SNDRV_PCM_FORMAT_S16_LE);
+
+		/*
+		 * Default mode for SSP configuration is TDM 4 slot, override config
+		 * with explicit setting to I2S 2ch 16-bit. The word length is set with
+		 * dai_set_tdm_slot() since there is no other API exposed
+		 */
+		ret = snd_soc_dai_set_fmt(rtd->cpu_dai,
+					SND_SOC_DAIFMT_I2S     |
+					SND_SOC_DAIFMT_NB_IF   |
+					SND_SOC_DAIFMT_CBS_CFS
+			);
+		if (ret < 0) {
+			dev_err(rtd->dev, "can't set format to I2S, err %d\n", ret);
+			return ret;
+		}
 
-	ret = snd_soc_dai_set_tdm_slot(rtd->cpu_dai, 0x3, 0x3, 2, 24);
-	if (ret < 0) {
-		dev_err(rtd->dev, "can't set I2S config, err %d\n", ret);
-		return ret;
-	}
+		ret = snd_soc_dai_set_tdm_slot(rtd->cpu_dai, 0x3, 0x3, 2, 16);
+		if (ret < 0) {
+			dev_err(rtd->dev, "can't set I2S config, err %d\n", ret);
+			return ret;
+		}
+
+	} else {
 
+		/* set SSP2 to 24-bit */
+		params_set_format(params, SNDRV_PCM_FORMAT_S24_LE);
+
+		/*
+		 * Default mode for SSP configuration is TDM 4 slot, override config
+		 * with explicit setting to I2S 2ch 24-bit. The word length is set with
+		 * dai_set_tdm_slot() since there is no other API exposed
+		 */
+		ret = snd_soc_dai_set_fmt(rtd->cpu_dai,
+					SND_SOC_DAIFMT_I2S     |
+					SND_SOC_DAIFMT_NB_IF   |
+					SND_SOC_DAIFMT_CBS_CFS
+			);
+		if (ret < 0) {
+			dev_err(rtd->dev, "can't set format to I2S, err %d\n", ret);
+			return ret;
+		}
+
+		ret = snd_soc_dai_set_tdm_slot(rtd->cpu_dai, 0x3, 0x3, 2, 24);
+		if (ret < 0) {
+			dev_err(rtd->dev, "can't set I2S config, err %d\n", ret);
+			return ret;
+		}
+	}
 	return 0;
 }
 
-- 
2.8.1

  reply	other threads:[~2016-08-15 14:15 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-12 21:27 [PATCH 00/17] Baytrail audio fixes Pierre-Louis Bossart
2016-08-12 21:27 ` [PATCH 01/17] ASoC: Intel: bytcr-rt5640: add Asus T100TAF quirks Pierre-Louis Bossart
2016-08-15 14:16   ` Applied "ASoC: Intel: bytcr-rt5640: add Asus T100TAF quirks" to the asoc tree Mark Brown
2016-08-12 21:27 ` [PATCH 02/17] ASoC: Intel: bytcr_rt5640: quirk for mono speaker Pierre-Louis Bossart
2016-08-15 14:16   ` Applied "ASoC: Intel: bytcr_rt5640: quirk for mono speaker" to the asoc tree Mark Brown
2016-08-12 21:27 ` [PATCH 03/17] ASoC: Intel: bytcr_rt5640: enable differential mic quirk Pierre-Louis Bossart
2016-08-15 14:16   ` Applied "ASoC: Intel: bytcr_rt5640: enable differential mic quirk" to the asoc tree Mark Brown
2016-08-12 21:27 ` [PATCH 04/17] ASoC: Intel: Atom: auto-detection of Baytrail-CR Pierre-Louis Bossart
2016-08-15 14:16   ` Applied "ASoC: Intel: Atom: auto-detection of Baytrail-CR" to the asoc tree Mark Brown
2016-08-12 21:27 ` [PATCH 05/17] ASoC: Intel: Atom: add definitions for modem/SSP0 interface Pierre-Louis Bossart
2016-08-15 14:16   ` Applied "ASoC: Intel: Atom: add definitions for modem/SSP0 interface" to the asoc tree Mark Brown
2016-08-12 21:27 ` [PATCH 06/17] ASoC: Intel: atom: enable configuration of SSP0 Pierre-Louis Bossart
2016-08-15 14:16   ` Applied "ASoC: Intel: atom: enable configuration of SSP0" to the asoc tree Mark Brown
2016-08-12 21:27 ` [PATCH 07/17] ASoC: Intel: bytcr_rt5640: add SSP2_AIF2 routing Pierre-Louis Bossart
2016-08-15 14:15   ` Applied "ASoC: Intel: bytcr_rt5640: add SSP2_AIF2 routing" to the asoc tree Mark Brown
2016-08-12 21:27 ` [PATCH 08/17] ASoC: Intel: bytcr_rt56040: additional routing quirks Pierre-Louis Bossart
2016-08-15 14:15   ` Applied "ASoC: Intel: bytcr_rt56040: additional routing quirks" to the asoc tree Mark Brown
2016-08-12 21:27 ` [PATCH 09/17] ASoC: Intel: bytcr_rt5640: fix dai/clock setup for SSP0 routing Pierre-Louis Bossart
2016-08-15 14:15   ` Mark Brown [this message]
2016-08-12 21:27 ` [PATCH 10/17] ASoC: Intel: bytcr_rt5640: default routing and quirks on Baytrail-CR Pierre-Louis Bossart
2016-08-15 14:15   ` Applied "ASoC: Intel: bytcr_rt5640: default routing and quirks on Baytrail-CR" to the asoc tree Mark Brown
2016-08-12 21:27 ` [PATCH 11/17] ASoC: Intel: bytcr_rt5640: add IN3 map Pierre-Louis Bossart
2016-08-15 14:15   ` Applied "ASoC: Intel: bytcr_rt5640: add IN3 map" to the asoc tree Mark Brown
2016-08-12 21:27 ` [PATCH 12/17] ASoC: rt5640: add internal clock source support Pierre-Louis Bossart
2016-08-15 14:11   ` Applied "ASoC: rt5640: add internal clock source support" to the asoc tree Mark Brown
2016-08-12 21:27 ` [PATCH 13/17] clk: x86: Add Atom PMC platform clocks Pierre-Louis Bossart
2016-08-12 21:27 ` [PATCH 14/17] ASoC: Intel: bytcr_rt5640: add MCLK support Pierre-Louis Bossart
2016-08-15 14:15   ` Applied "ASoC: Intel: bytcr_rt5640: add MCLK support" to the asoc tree Mark Brown
2016-08-12 21:27 ` [PATCH 15/17] AsoC: Intel: Add quirks for MinnowBoard MAX Pierre-Louis Bossart
2016-08-15 14:15   ` Applied "AsoC: Intel: Add quirks for MinnowBoard MAX" to the asoc tree Mark Brown
2016-08-12 21:27 ` [PATCH 16/17] ASoC: bytcr_rt5640: Add quirk for Teclast X98 Air 3G tablet Pierre-Louis Bossart
2016-08-15 14:15   ` Applied "ASoC: Intel: bytcr_rt5640: Add quirk for Teclast X98 Air 3G tablet" to the asoc tree Mark Brown
2016-08-12 21:28 ` [PATCH 17/17] ASoC: Intel: bytcr_rt5640: log quirks Pierre-Louis Bossart
2016-08-15 14:15   ` Applied "ASoC: Intel: bytcr_rt5640: log quirks" to the asoc tree Mark Brown
2016-08-15 14:56 ` [PATCH 00/17] Baytrail audio fixes Pierre-Louis Bossart
2016-08-17 10:50   ` Mark Brown
2016-08-17 18:26     ` Pierre-Louis Bossart
2016-08-18  9:29       ` Mark Brown
2016-08-18 16:22         ` Pierre-Louis Bossart
2016-08-18 16:35           ` Mark Brown

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=E1bZIgB-0007Ks-7r@debutante \
    --to=broonie@kernel.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=irina.tirdea@intel.com \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=tiwai@suse.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox