alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ASoC: da7210: Minor improvements and a bugfix
@ 2012-05-03 13:57 Ashish Chavan
  2012-05-03 17:54 ` Mark Brown
  0 siblings, 1 reply; 2+ messages in thread
From: Ashish Chavan @ 2012-05-03 13:57 UTC (permalink / raw)
  To: Mark Brown, lrg, alsa-devel
  Cc: linux-kernel, kuninori.morimoto.gx, David Dajun Chen

This patch improves playback quality for few sample rates like 8000 and
11025 Hz. 

This also fixes an issue observed during testing of pll slave mode. Due
to the issue, on some rare occasions there was no sound output for first
time playback after system boot, though all subsequent playbacks were
fine. It was mainly because of the sequence in which SRM bit was
enabled.

Signed-off-by: Ashish Chavan <ashish.chavan@kpitcummins.com>
Signed-off-by: David Dajun Chen <dchen@diasemi.com>
---
 sound/soc/codecs/da7210.c |   28 +++++++++++++++-------------
 1 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/sound/soc/codecs/da7210.c b/sound/soc/codecs/da7210.c
index 10f52ff..af5db70 100644
--- a/sound/soc/codecs/da7210.c
+++ b/sound/soc/codecs/da7210.c
@@ -850,8 +850,19 @@ static int da7210_hw_params(struct snd_pcm_substream *substream,
 	if (da7210->mclk_rate && (da7210->mclk_rate != sysclk)) {
 		/* PLL mode, disable PLL bypass */
 		snd_soc_update_bits(codec, DA7210_PLL_DIV3, DA7210_PLL_BYP, 0);
+
+		if (!da7210->master) {
+			/* PLL slave mode, also enable SRM */
+			snd_soc_update_bits(codec, DA7210_PLL,
+						   (DA7210_MCLK_SRM_EN |
+						    DA7210_MCLK_DET_EN),
+						   (DA7210_MCLK_SRM_EN |
+						    DA7210_MCLK_DET_EN));
+		}
 	} else {
-		/* PLL bypass mode, enable PLL bypass */
+		/* PLL bypass mode, enable PLL bypass and Auto Detection */
+		snd_soc_update_bits(codec, DA7210_PLL, DA7210_MCLK_DET_EN,
+						       DA7210_MCLK_DET_EN);
 		snd_soc_update_bits(codec, DA7210_PLL_DIV3, DA7210_PLL_BYP,
 							    DA7210_PLL_BYP);
 	}
@@ -1014,18 +1025,9 @@ static int da7210_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id,
 	snd_soc_update_bits(codec, DA7210_PLL_DIV3,
 				   DA7210_PLL_DIV_L_MASK, pll_div3);
 
-	if (da7210->master) {
-		/* In master mode, no need to enable SRM */
-		snd_soc_update_bits(codec, DA7210_PLL, DA7210_PLL_EN,
-						       DA7210_PLL_EN);
-	} else {
-		/* In slave mode, enable SRM and PLL */
-		snd_soc_update_bits(codec, DA7210_PLL,
-				   (DA7210_PLL_EN | DA7210_MCLK_SRM_EN |
-						     DA7210_MCLK_DET_EN),
-				   (DA7210_PLL_EN | DA7210_MCLK_SRM_EN |
-						    DA7210_MCLK_DET_EN));
-	}
+	/* Enable PLL */
+	snd_soc_update_bits(codec, DA7210_PLL, DA7210_PLL_EN, DA7210_PLL_EN);
+
 	/* Enable active mode */
 	snd_soc_update_bits(codec, DA7210_STARTUP1, DA7210_SC_MST_EN,
 						    DA7210_SC_MST_EN);
-- 
1.7.1

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

* Re: [PATCH] ASoC: da7210: Minor improvements and a bugfix
  2012-05-03 13:57 [PATCH] ASoC: da7210: Minor improvements and a bugfix Ashish Chavan
@ 2012-05-03 17:54 ` Mark Brown
  0 siblings, 0 replies; 2+ messages in thread
From: Mark Brown @ 2012-05-03 17:54 UTC (permalink / raw)
  To: Ashish Chavan
  Cc: linux-kernel, alsa-devel, lrg, kuninori.morimoto.gx,
	David Dajun Chen


[-- Attachment #1.1: Type: text/plain, Size: 173 bytes --]

On Thu, May 03, 2012 at 07:27:52PM +0530, Ashish Chavan wrote:
> This patch improves playback quality for few sample rates like 8000 and
> 11025 Hz. 

Applied, thanks.

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



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

end of thread, other threads:[~2012-05-03 17:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-03 13:57 [PATCH] ASoC: da7210: Minor improvements and a bugfix Ashish Chavan
2012-05-03 17:54 ` 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).