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

Andreas Nüßlein nutz at unfoog.de
Tue Jul 7 11:51:17 CEST 2009


On Tuesday 07 July 2009 08:00:19 you wrote:
> 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,
> > >
> > > Sean Burke wrote:
> > > > Scríobh Takashi Iwai:
> > > > > At Mon, 6 Jul 2009 17:53:46 +0200,
> > > > >
> > > > > Andreas Nüßlein wrote:
> > > > >>> The missing pin configuration initialization was already fixed by
> > > > >>> the driver overriding it after checking PCI SSID (which is
> > > > >>> different from the codec SSID).  So, this should be no problem.
> > > > >>>
> > > > >>> However, the reason why the analog output doesn't work might be
> > > > >>> different from that.  There might be something else missing, but
> > > > >>> I don't know.
> > > > >>>
> > > > >>>
> > > > >>> Takashi
> > > > >>
> > > > >> oh =(
> > > > >>
> > > > >>
> > > > >> hmm.. anything i can do?  would it help if i tried changing values
> > > > >> randomly with hda-analyzer.py?
> > > > >
> > > > > Well, did the driver without my change work more or less with
> > > > > the analog audio, or have you never gotten the analog output?
> > > > > You can use the generic parser (i.e. the state without cirrus
> > > > > patch) by passing model=generic option to snd-hda-intel.
> > > >
> > > > For my part, nothing worked with the generic driver. I can't confirm
> > > > digital out, but I can confirm that the kfree error is gone. What
> > > > options are open for figuring out what remains?
> > >
> > > 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).
>
>
> Takashi


so here are my findings so far:

hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x08


is sufficient to turn on the right functionality for the speakers; meaning:
 - 'front speaker'-channel actually controls the two front speakers within the
   macbookpro - even controlling left and right channel seperately works  =)
 - 'surround' mute-switch and volume-control (why are those not within on
   thing btw?) also work and control a third speaker in the mac, which
   really seems responsibly for surround :)

headphones do not yet work, however i made a diff of 
"/proc/asound/card0/codec#0" with and without something plugged in:

$ diff -u without_headphones.txt with_headphones.txt
--- without_headphones.txt      2009-07-07 11:41:36.558833270 +0200
+++ with_headphones.txt 2009-07-07 11:41:44.286832992 +0200
@@ -113,7 +113,7 @@
     Conn = Unknown, Color = Unknown
     DefAssociation = 0x2, Sequence = 0x1
     Misc = NO_PRESENCE
-  Pin-ctls: 0x40: OUT
+  Pin-ctls: 0x00:
   Unsolicited: tag=00, enabled=0
   Power: setting=D0, actual=D0
   Delay: 1 samples
@@ -125,7 +125,7 @@
     Conn = Unknown, Color = Unknown
     DefAssociation = 0x2, Sequence = 0x0
     Misc = NO_PRESENCE
-  Pin-ctls: 0x40: OUT
+  Pin-ctls: 0x00:
   Delay: 1 samples
   Connection: 1
      0x04



thanks =)
nutz



More information about the Alsa-devel mailing list