Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 Jan 2009 00:21:26 +0100
From:      Patrick =?ISO-8859-15?Q?Lamaizi=E8re?= <patfbsd@davenulle.org>
To:        freebsd-multimedia@freebsd.org
Subject:   [snd_hda] Sound problem on Macbook pro model 3.1
Message-ID:  <20090131002126.33d575a1@baby-jane.lamaiziere.net>

next in thread | raw e-mail | index | archive | help
Hello,

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@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?

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.
Regards.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090131002126.33d575a1>