HDA sound driver mod for thinkpad x60s
Wesley Morgan
morganw at chemikals.org
Wed Jun 7 03:16:36 UTC 2006
On Tue, 6 Jun 2006, Andrea Bittau wrote:
> On Tue, Jun 06, 2006 at 03:12:09PM -0500, Eric Anderson wrote:
>> How can I figure out the node id?
>
>> Jun 6 14:43:51 neutrino kernel: pcm0: node 2 type 0 cap d0401
>> Jun 6 14:43:51 neutrino kernel: pcm0: node 5 type 0 cap 40211
>
>> Jun 6 14:43:51 neutrino kernel: pcm0: node 8 type 4 cap 430681
>> Jun 6 14:43:51 neutrino kernel: pcm0: node 9 type 4 cap 400301
>> Jun 6 14:43:51 neutrino kernel: pcm0: node 13 type 4 cap 400181
>> Jun 6 14:43:51 neutrino kernel: pcm0: node 14 type 4 cap 400181
>> Jun 6 14:43:51 neutrino kernel: pcm0: node 15 type 4 cap 400181
>> Jun 6 14:43:51 neutrino kernel: pcm0: node 16 type 4 cap 400181
>> Jun 6 14:43:51 neutrino kernel: pcm0: node 17 type 4 cap 400104
>> Jun 6 14:43:51 neutrino kernel: pcm0: node 18 type 4 cap 400001
>
> OK so type 0 is audio output, so node id 2 and 5 are audio output. Therefore,
> in the driver, the:
> sorbo_conf_output(sc, 0, 3);
> should be replaced with 0, 2 or 0, 5.
>
> The "pins", are type 4 and you need to amplify them. So you need to modify:
> sorbo_set_amp(sc, 0, 5, 40);
> with:
> sorbo_set_amp(sc, 0, 8, 40); // set node id 8 gain 40
> sorbo_set_amp(sc, 0, 9, 40); // set node id 9 gain 40
> ...
> sorbo_set_amp(sc, 0, 18, 40); // node id 18.
>
> There is one aditional piece of debug info which might be handy. You need to
> make sure that the "pins" are connected to the audio output device. Make enum()
> get called as described in the previous mails, then in sorbo_print_widget(), get
> rid of 0 && in the type == HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_PIN_COMPLEX. That
> is, sorbo_conf_pin() should be called for each pin. This will cause an
> additional printf which will tell you which audio output each pin is connected
> to [list %x cur %d]. Ideally you want pins to be connected either to 2 or 5 in
> your case.
>
> Also, make sure the hardware volume is up, if there are any buttons on the
> laptop. =D
Following all of these instructions on my system results nearly identical
output, with no working sound. The chipset is an i945, which the folks at
4-front also seem to have problems supporting.
pcm0: <Intel 82801G High Definition Audio Controller> mem 0xffdfc000-0xffdfffff irq 22 at device 27.0 on pci0
init 0xc5901700
pcm0: Output Streams: 4, Input Streams: 4, Bidirectional Streams: 0
pcm0: CORB Size: 256, RIRB Size: 256
seq_eventthread started
pcm0: <audio> at device 0:1 (no driver attached)
pcm0: <modem> at device 1:1 (no driver attached)
pcm0: node 2 type 0 cap d0401
pcm0: Cap d0401 sf 0 st 0
pcm0: Set 0:2 10
pcm0: node 3 type 1 cap 1d0541
pcm0: node 4 type 1 cap 140311
pcm0: node 5 type 0 cap 40211
pcm0: Cap 40211 sf e01e0 st 5
pcm0: Set 0:5 10
pcm0: node 6 type f cap f30201
pcm0: node 7 type 3 cap 300901
pcm0: node 8 type 4 cap 430681
pcm0: nid 8 entries 0 list 0 cur 0 ctr 0 cap 10024 s 0
pcm0: AMP ni 8 rc 0
pcm0: node 9 type 4 cap 400301
pcm0: nid 9 entries 2 list a05 cur 0 ctr 0 cap 10 s 0
pcm0: AMP ni 9 rc 0
pcm0: node 10 type 3 cap 30090d
pcm0: node 11 type 3 cap 300105
pcm0: node 12 type 3 cap 30010d
pcm0: node 13 type 4 cap 400181
pcm0: nid 13 entries 1 list b cur 0 ctr 0 cap 3f s 7fffffff
pcm0: AMP ni 13 rc 0
pcm0: node 14 type 4 cap 400181
pcm0: nid 14 entries 1 list b cur 0 ctr 0 cap 3f s 7fffffff
pcm0: AMP ni 14 rc 0
pcm0: node 15 type 4 cap 400181
pcm0: nid 15 entries 1 list b cur 0 ctr 0 cap 37 s 7fffffff
pcm0: AMP ni 15 rc 0
pcm0: node 16 type 4 cap 400181
pcm0: nid 16 entries 1 list b cur 0 ctr 0 cap 1737 s 7fffffff
pcm0: AMP ni 16 rc 0
pcm0: node 17 type 4 cap 400104
pcm0: nid 17 entries 1 list 13 cur 0 ctr 0 cap 10 s 0
pcm0: AMP ni 17 rc 8
pcm0: node 18 type 4 cap 400001
pcm0: nid 18 entries 0 list 0 cur 0 ctr 0 cap 20 s 0
pcm0: AMP ni 18 rc 0
pcm0: node 19 type 2 cap 200100
pcm0: node 20 type 7 cap 70000c
pcm0: Cap d0401 sf 0 st 0
pcm0: Set 0:2 10
mount option <export> is unknown
--
This .signature sanitized for your protection
More information about the freebsd-mobile
mailing list