[alsa-devel] Macbook[Pro] 5 6ch support

Takashi Iwai tiwai at suse.de
Tue Jun 2 01:52:59 CEST 2009


At Mon, 1 Jun 2009 20:21:27 +0200,
Kacper Szczesniak wrote:
> 
> On Mon, Jun 1, 2009 at 6:54 PM, Takashi Iwai <tiwai at suse.de> wrote:
> > At Mon, 1 Jun 2009 15:36:35 +0200,
> > Kacper Szczesniak wrote:
> >>
> >> On Mon, Jun 1, 2009 at 10:54 AM, Takashi Iwai <tiwai at suse.de> wrote:
> >> > Hm, this patch changes the channel mapping completely.
> >> > Is it intentional?
> >> yes, 0xc/0xd/0xe for Front/LFE/Surr
> >>
> >> >> static struct snd_kcontrol_new alc885_mb5_mixer[] = {
> >> >> -     HDA_CODEC_VOLUME("Front Playback Volume", 0x0d, 0x00, HDA_OUTPUT),
> >> >> -     HDA_BIND_MUTE   ("Front Playback Switch", 0x0d, 0x02, HDA_INPUT),
> >> >> -     HDA_CODEC_VOLUME("Line-Out Playback Volume", 0x0c, 0x00, HDA_OUTPUT),
> >> >> -     HDA_BIND_MUTE   ("Line-Out Playback Switch", 0x0c, 0x02, HDA_INPUT),
> >> >> +     HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x00, HDA_OUTPUT),
> >> >> +     HDA_BIND_MUTE   ("Front Playback Switch", 0x0c, 0x02, HDA_INPUT),
> >> >> +     HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x00, HDA_OUTPUT),
> >> >> +     HDA_BIND_MUTE   ("Surround Playback Switch", 0x0d, 0x02, HDA_INPUT),
> >> >> +     HDA_CODEC_VOLUME("LFE Playback Volume", 0x0e, 0x00, HDA_OUTPUT),
> >> >> +     HDA_BIND_MUTE   ("LFE Playback Switch", 0x0e, 0x02, HDA_INPUT),
> >> >> +     HDA_CODEC_VOLUME("HP Playback Volume", 0x0f, 0x00, HDA_OUTPUT),
> >> >> +     HDA_BIND_MUTE   ("HP Playback Switch", 0x0f, 0x02, HDA_INPUT),
> >> >>       HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT),
> >> >>       HDA_CODEC_MUTE  ("Line Playback Switch", 0x0b, 0x02, HDA_INPUT),
> >> >
> >> >
> >> > I'm wondering whether this breaks MB5, not MB5.1.  If it's MB5.1
> >> > specific, please create another model instead of breaking the old
> >> > one.
> >> it's confirmed to work on MB5.1 MBP5.1 MBP52
> >
> > Hrm, then I wonder why the old mb5 model works as is although the
> > mapping is totally different...
> 
>  	/* Front mixer */
> -	{0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},
> -	{0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
> -	{0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
> -	/* LineOut mixer */
>  	{0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},
>  	{0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
>  	{0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
> -	/* Front Pin: output 0 (0x0d) */
> +	/* Surround mixer */
> +	{0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},
> +	{0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
> +	{0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
> +	/* LFE mixer */
> +	{0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},
> +	{0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
> +	{0x0e, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
> +	/* HP mixer */
> +	{0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_ZERO},
> +	{0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)},
> +	{0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(1)},
> +	/* Front Pin (0x0c) */
>  	{0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT | 0x01},
>  	{0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
> -	{0x18, AC_VERB_SET_CONNECT_SEL, 0x01},
> -	/* HP Pin: output 0 (0x0c) */
> +	{0x18, AC_VERB_SET_CONNECT_SEL, 0x00},
> +	/* LFE Pin (0x0e) */
> +	{0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT | 0x01},
> +	{0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
> +	{0x1a, AC_VERB_SET_CONNECT_SEL, 0x02},
> +	/* HP Pin (0x0f) */
>  	{0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT},
>  	{0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
> -	{0x14, AC_VERB_SET_CONNECT_SEL, 0x00},
> +	{0x14, AC_VERB_SET_CONNECT_SEL, 0x03},
> 
> connections are different also... I've changed mixer names and connected PINs to
> the right mixer nodes.

Fair enough.  I merged the patch now to sound git tree.
Let me know if you see still any problem.


thanks,

Takashi


More information about the Alsa-devel mailing list