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;