[alsa-devel] [PATCH] ALSA: hda - apply CS420X erratum fix for CS4207 only

Takashi Iwai tiwai at suse.de
Thu Mar 3 14:58:18 CET 2011


At Thu, 03 Mar 2011 17:50:22 +0530,
Arun Raghavan wrote:
> 
> On Thu, 2011-03-03 at 13:01 +0100, Takashi Iwai wrote:
> > At Thu,  3 Mar 2011 03:18:18 +0530,
> > Arun Raghavan wrote:
> > > 
> > > From: Arun Raghavan <arun at accosted.net>
> > > 
> > > The commit a769cbcf60cee51f4431c0938acd39e7e5b76b8d
> > >     ALSA: hda - Add errata initverb sequence for CS42xx codecs
> > > applies a fix for a chip erratum that is specific to CS4207
> > > unconditionally. On CS4206, this causes digital output to never be
> > > activated.
> > 
> > It might be the power-state the verb table sets?
> > Try to comment out only the line setting SPDIF Tx to D3,
> >   {0x08, AC_VERB_SET_POWER_STATE, 0x03}
> > instead of disabling the whole verbs, just for testing.
> 
> Indeed, this also works.

OK, to be sure, try the patch below.


thanks,

Takashi

---
From: Takashi Iwai <tiwai at suse.de>
Date: Thu, 3 Mar 2011 14:54:19 +0100
Subject: [PATCH] ALSA: hda - Don't set to D3 in Cirrus errata init verbs

The errata init verbs for CS42xx codecs contain the verbs to set
the power-state of SPDIF nodes to D3, which seem to break the SPDIF
output on some MacBooks.  Since this is executed during the power-up
initialization, we shouldn't turn them down there.

Reported-by: Arun Raghavan <arun.raghavan at collabora.co.uk>
Signed-off-by: Takashi Iwai <tiwai at suse.de>
---
 sound/pci/hda/patch_cirrus.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c
index a07b031..067982f 100644
--- a/sound/pci/hda/patch_cirrus.c
+++ b/sound/pci/hda/patch_cirrus.c
@@ -1039,9 +1039,11 @@ static struct hda_verb cs_errata_init_verbs[] = {
 	{0x11, AC_VERB_SET_PROC_COEF, 0x0008},
 	{0x11, AC_VERB_SET_PROC_STATE, 0x00},
 
+#if 0 /* Don't to set to D3 as we are in power-up sequence */
 	{0x07, AC_VERB_SET_POWER_STATE, 0x03}, /* S/PDIF Rx: D3 */
 	{0x08, AC_VERB_SET_POWER_STATE, 0x03}, /* S/PDIF Tx: D3 */
 	/*{0x01, AC_VERB_SET_POWER_STATE, 0x03},*/ /* AFG: D3 This is already handled */
+#endif
 
 	{} /* terminator */
 };
-- 
1.7.3.4



More information about the Alsa-devel mailing list