Re: 3.8-rc1 patch_cirrus 4.0 regression...

From: Takashi Iwai
Date: Tue Feb 05 2013 - 12:34:55 EST


At Tue, 05 Feb 2013 17:16:32 +0100,
Takashi Iwai wrote:
>
> At Wed, 6 Feb 2013 00:10:30 +0800,
> Daniel J Blueman wrote:
> >
> > Hi Takashi,
> >
> > The v3.8-rc kernels have regressed from v3.7 with the quad-speaker
> > arrangement on my Macbook Pro 10,1 - only the higher-frequency
> > speakers work despite the front and rear channels being exposed in the
> > mixer.
>
> Interesting. So you have a machine with 4.0 built-in speaker instead
> of 2.1? Then we need to add a device-specific flag for it. Currently
> the driver assumes 2.1 system blindly because majority of machines
> have that.
>
> FWIW, the codec parser code has been totally rewritten for 3.9, so any
> patch to 3.8 won't be applied to 3.9 (and vice versa)...
>
> Could you give alsa-info.sh output on 3.8 kernel? Then I'll try to
> cook it for 3.9 (and maybe backport to 3.8).

The patch below is a quick fix for 3.8-rc6.
Could you check whether this works alone?


Takashi

---
diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c
index a2537b2..d74e06c 100644
--- a/sound/pci/hda/patch_cirrus.c
+++ b/sound/pci/hda/patch_cirrus.c
@@ -448,7 +448,8 @@ static int parse_output(struct hda_codec *codec)
spec->multiout.max_channels = i * 2;

if (cfg->line_out_type == AUTO_PIN_SPEAKER_OUT && i == 2)
- spec->speaker_2_1 = 1; /* assume 2.1 speakers */
+ if (spec->gen.fixup_id != CS420X_MBP101)
+ spec->speaker_2_1 = 1; /* assume 2.1 speakers */

/* add HP and speakers */
extra_nids = 0;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/