[alsa-devel] No sound with nVidia Corporation MCP79 High Definition Audio (rev b1) (Macbook Pro 5, 5)

Takashi Iwai tiwai at suse.de
Tue Jul 7 08:38:06 CEST 2009


At Tue, 07 Jul 2009 00:24:51 -0600,
Sean Burke wrote:
> 
> Scríobh Takashi Iwai:
> > At Mon, 6 Jul 2009 22:14:56 +0200,
> > Andreas Nüßlein wrote:
> >   
> >> On Monday 06 July 2009 21:26:18 you wrote:
> >>     
> >>> At Mon, 06 Jul 2009 11:16:35 -0600,
> >>>       
> >>> Easy things to test are GPIO bits.  Run hda-verb like
> >>>
> >>> 	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x0f
> >>> 	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x0f
> >>> or
> >>> 	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x0f
> >>> 	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x0f
> >>>
> >>> etc.  CS4206 seems to have 4 GPIO lines, and each bit (0-3)
> >>> corresponds to each GPIO.  In many case, GPIO0 or GPIO1 corresponds to
> >>> the amplifier (EAPD) bit.
> >>> Define the GPIO direction of each GPIO bit by SET_GPIO_DIR, and
> >>> turn on/off the GPIO bits by SET_GPIO_DATA.  Running
> >>> 	hda-verb /dev/snd/hwC0D0 0x01 GET_GPIO_DATA 0
> >>> will show the current GPIO data bits.  Or you can check it in codec#*
> >>> proc file.
> >>>
> >>>
> >>> Takashi
> >>>       
> >> w000000000000000000000000000000000t! =)
> >>
> >> takashi, thank you _so_ much!
> >>
> >> after running all 4 of those:
> >>     
> >>> 	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x0f
> >>> 	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x0f
> >>> or
> >>> 	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x0f
> >>> 	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x0f
> >>>
> >>>       
> >> i suddendly had sound!! :D :D :D :D :D :D :D 
> >> only via speakers  though - there is no sound via headphones right now. 
> >>
> >> mixer channels: 
> >> - Master (with Mutebutton), PCM and Front (also with Mute) all work =)
> >> - i don't know what surround would do (or it's extra switch)
> >> - headphones-volumes and mute button don't affect the speakers, which is good 
> >> =)
> >>
> >>
> >> is there a way to reset what i did with hda-verb, so that i can figure out 
> >> which combination it was exactly?
> >>     
> >
> > You can just change the value 0x0f to a different value.
> > At least, you can try commands like
> >  	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01
> >  	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x02
> >  	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x04
> >  	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x08
> > and check the speaker output at each time.
> > Also, check the GPIO direction,
> >  	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x01
> >  	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x01
> >  	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIR 0x02
> >  	hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x02
> > 	...
> >
> > Regarding the headphone: is the speaker muted when you plug in the
> > headphone?  If not, it's likely an issue of the jack detection.  If
> > the speaker is muted but no headphone output, it's a missing
> > initialization (or wrong GPIO setup).
> Setting both _DIR and _DATA to 0x08 worked, as did 0x0f.

OK, then GPIO2 is EAPD.

> Plugging in
> headphones does not mute the speaker.

I'll check this later.


thanks,

Takashi


More information about the Alsa-devel mailing list