[snd_hda] Sound problem on Macbook pro model 3.1

Alexander Motin mav at mavhome.dp.ua
Sat Jan 31 00:39:47 PST 2009


Patrick Lamaizière wrote:
> I'm trying to get the sound (snd_hda) working on my Macbook pro model
> 3,1.
> 
> I run FreeBSD 7.1 but snd_hda is taken from current of today.
> 
> Identification:
> $ pciconf -vl
> hdac0 at pci0:0:27:0:      class=0x040300 card=0x00a0106b chip=0x284b8086
> rev=0x03 hdr=0x00
>     vendor     = 'Intel Corporation'
>     device     = '82801H &SUBSYS_81EC1043&REV_02\3&11583659&0&D8'
>     class      = multimedia
>     subclass   = HDA
> 
> [Warning: according to the alsa project the PCI ID is shared between
> some Mac with differents HDA configurations:
> http://git.alsa-project.org/?p=alsa-kernel.git;a=commit;h=93a1a5eb70be5cc14990b97ef2460212e32658dc
> and
> http://lkml.org/lkml/2008/8/24/143
> ]
> 
> I must use a gpio0 quirk to get the speaker sound so i added a device
> hint:
> hint.hdac.0.config="gpio0"
> 
> And I should fix the association between the headphone pin and the
> speaker.
> device hint:
> hint.hdac.0.cad0.nid21.config="as=4 seq=15"
> 
> hdac0: HDA Driver Revision: 20090126_0126
> hdac0: Reserved 0x4000 bytes for rid 0x10 type 3 at 0x9b500000
> hdac0: [MPSAFE]
> hdac0: [ITHREAD]
> hdac0: HDA Config: gpio0
> hdac0: Probing codec #0...
> hdac0: HDA Codec #0: Realtek ALC885
> hdac0:  HDA Codec ID: 0x10ec0885
> hdac0:        Vendor: 0x10ec
> hdac0:        Device: 0x0885
> hdac0:      Revision: 0x01
> hdac0:      Stepping: 0x03
> hdac0: PCI Subvendor: 0x00a0106b
> hdac0:  Found audio FG nid=1 startnode=2 endnode=39 total=37
> hdac0:
> hdac0: Processing audio FG cad=0 nid=1...
> hdac0: GPIO: 0x40000002 NumGPIO=2 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=1
> hdac0:  nid 20 0x90100140 as  4 seq  0       Speaker Fixed jack  0 loc
> 16 color Unknown misc 1
> hdac0:  nid 21 0x012b4050 as  5 seq  0    Headphones  Jack jack 11 loc
> 1 color Green misc 0
> [...]
> hdac0: Patched pins configuration:
> hdac0:  nid 20 0x90100140 as  4 seq  0       Speaker Fixed jack  0 loc
> 16 color
> Unknown misc 1
> hdac0:  nid 21 0x012b404f as  4 seq 15    Headphones  Jack jack 11 loc
> 1 color
> 
> Now when i plug a headphone, the sound from the speaker is
> muted but i don't hear sound in the headphone. There is some sound but
> the level is very very very low. 
> 
> I think i have to add a ovref quirk somewhere or another quirk, but a
> quirk
> hint.hdac.0.config="gpio0 ovref" does not seem to do anything:
> 
> hdac0: FG config/quirks: gpio0 forcestereo ivref50 ivref80 ivref100
> ivref
> 
> Why ovref is not listed? How to add a quirk 'ovref' or 'eapdinv',
> there is no example in the man page?

There was a bug in this string parsing which I have just fixed in 
CURRENT. eapdinv will be ineffective for this codec, as there is no EAPD 
controls reported by it. Actually I have never seen that ovref do 
something, but you may try it, Linux seems doing it for several macbooks.

> files:
> - hda and pcm output: 
> http://user.lamaiziere.net/patrick/keep/hda.txt
> http://user.lamaiziere.net/patrick/keep/hda-linux.svg
> The sound works fine under Linux, for information I add:
> - hda codec output from Linux(ubuntu-8/10)
>   (ie /proc/asound/card*/codec*) 
> http://user.lamaiziere.net/patrick/keep/hda-linux.txt 
> - codecgraph output:
> http://user.lamaiziere.net/patrick/keep/hda-linux.svg
> (is it useful for you?)
> 
> Any help will be very welcome, thanks.

If you are not doing redirection, but instead just playing to headphones 
via different pcm device, does they work fine?

-- 
Alexander Motin


More information about the freebsd-multimedia mailing list