Date: Fri, 29 Sep 2006 14:09:57 -0400 (EDT) From: Wesley Morgan <morganw@chemikals.org> To: Ariff Abdullah <ariff@freebsd.org> Cc: freebsd-multimedia@freebsd.org Subject: Re: HEADS UP: Last call for snd_hda(4) testers - High Definition Audio driver Message-ID: <20060929135351.T90463@volatile.chemikals.org> In-Reply-To: <20060930014646.36d8fc66.ariff@FreeBSD.org> References: <20060929044401.5c52bef3.ariff@FreeBSD.org> <20060929153713.GA86697@svzserv.kemerovo.su> <20060929234754.1023b4c1.ariff@FreeBSD.org> <20060929172908.GB86697@svzserv.kemerovo.su> <20060930014646.36d8fc66.ariff@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
I have a STAC9220 codec and I noticed that during boot it calls for soft pcm volume. Does this only apply to the pcm knob? I know for a fact there is an outamp on nid 11 that controls the master volume. I can't tell what nids are assigned to which volume controls from the dmesg. Both pcm and master volume "work", but not as I would expect. Going from 100 to 50 is definitely not half volume on either control. I can't remember if the HDA spec sets the gain by dB or not, which might make the response logarithmic, but when I was toying with the other driver it seemed to give more natural results. Anyway, my dmesg is below. You can see nid 11 is fed by nid 7 which is fed by nid 2, so nid 11 essentially has the output gain for that DAC. pcm0: <Intel 82801G High Definition Audio Controller> mem 0xffdfc000-0xffdfffff irq 22 at device 27.0 on pci0 pcm0: Reserved 0x4000 bytes for rid 0x10 type 3 at 0xffdfc000 pcm0: [MPSAFE] pcm0: Vendor: 0x00008384 pcm0: Device: 0x00007690 pcm0: Revision: 0x00000022 pcm0: Stepping: 0x00000001 pcm0: PCI Subvendor: 0x00011179 pcm0: Nodes: start=2 endnode=21 total=19 pcm0: [ 2] Ctl nid=11 Bind to NONE pcm0: [ 4] Ctl nid=17 DISABLED pcm0: Forcing Soft PCM volume pcm0: Mixer "vol": child=0x00000010 pcm0: Mixer "pcm": parent="vol" pcm0: Mixer "speaker": pcm0: Mixer "mic": pcm0: Mixer "rec": pcm0: Soft PCM mixer ENABLED pcm0: sndbuf_setmap 5df4c000, 4000; 0xe49e5000 -> 5df4c000 pcm0: sndbuf_setmap 5df48000, 4000; 0xe49e9000 -> 5df48000 pcm0: <HDA Codec: Sigmatel STAC9220> pcm0: <HDA Driver Revision: 20060929_0025> pcm0: pcm0: HDA quirks: SOFTPCMVOL FIXEDRATE FORCESTEREO pcm0: pcm0: +-------------------+ pcm0: | DUMPING HDA NODES | pcm0: +-------------------+ pcm0: pcm0: Default Parameter pcm0: ----------------- pcm0: Stream cap: 0x00000001 pcm0: Format: PCM pcm0: PCM cap: 0x000e07e0 pcm0: PCM size: 16 20 24 pcm0: PCM rate: 11 16 22 32 44 48 pcm0: IN amp: 0x00000000 pcm0: OUT amp: 0x80051f1f pcm0: pcm0: nid: 2 [ANALOG] pcm0: name: audio output pcm0: widget_cap: 0x000d0401 pcm0: Parse flags: 0x00000001 pcm0: Ctl flags: 0x00000000 pcm0: Stream cap: 0x00000001 pcm0: Format: PCM pcm0: PCM cap: 0x000e07e0 pcm0: PCM size: 16 20 24 pcm0: PCM rate: 11 16 22 32 44 48 pcm0: connections: 0 pcm0: pcm0: nid: 3 [ANALOG] pcm0: name: audio input pcm0: widget_cap: 0x001d0541 pcm0: Parse flags: 0x00000002 pcm0: Ctl flags: 0x00000800 pcm0: Stream cap: 0x00000001 pcm0: Format: PCM pcm0: PCM cap: 0x000e07e0 pcm0: PCM size: 16 20 24 pcm0: PCM rate: 11 16 22 32 44 48 pcm0: connections: 1 pcm0: | pcm0: + <- nid=10 [audio selector] pcm0: pcm0: nid: 4 [DIGITAL] [DISABLED] pcm0: name: audio input pcm0: widget_cap: 0x00140311 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Stream cap: 0x00000005 pcm0: Format: AC3 PCM pcm0: PCM cap: 0x000e0160 pcm0: PCM size: 16 20 24 pcm0: PCM rate: 22 44 48 pcm0: connections: 1 pcm0: | pcm0: + <- nid=8 [pin: other (none)] [DISABLED] pcm0: pcm0: nid: 5 [DIGITAL] [DISABLED] pcm0: name: audio output pcm0: widget_cap: 0x00040211 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Stream cap: 0x00000005 pcm0: Format: AC3 PCM pcm0: PCM cap: 0x000e01e0 pcm0: PCM size: 16 20 24 pcm0: PCM rate: 22 32 44 48 pcm0: connections: 0 pcm0: pcm0: nid: 6 [DIGITAL] [DISABLED] pcm0: name: vendor widget pcm0: widget_cap: 0x00f30201 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: connections: 0 pcm0: pcm0: nid: 7 [ANALOG] pcm0: name: audio selector pcm0: widget_cap: 0x00300901 pcm0: Parse flags: 0x00000001 pcm0: Ctl flags: 0x00000081 pcm0: connections: 3 pcm0: | pcm0: + <- nid=2 [audio output] (selected) pcm0: | pcm0: + <- nid=8 [pin: other (none)] [DISABLED] pcm0: | pcm0: + <- nid=10 [audio selector] pcm0: pcm0: nid: 8 [DIGITAL] [DISABLED] pcm0: name: pin: other (none) pcm0: widget_cap: 0x00430681 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Pin cap: 0x00010024 pcm0: IN EAPD : UNSOL pcm0: Pin config: 0x40f000fd pcm0: Pin control: 0x00000020 IN pcm0: EAPD: 0x00000002 pcm0: connections: 0 pcm0: pcm0: nid: 9 [DIGITAL] [DISABLED] pcm0: name: pin: other (none) pcm0: widget_cap: 0x00400301 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Pin cap: 0x00000010 pcm0: OUT pcm0: Pin config: 0x40f000fe pcm0: Pin control: 0x00000040 OUT pcm0: connections: 2 pcm0: | pcm0: + <- nid=5 [audio output] [DISABLED] pcm0: | pcm0: + <- nid=10 [audio selector] pcm0: pcm0: nid: 10 [ANALOG] pcm0: name: audio selector pcm0: widget_cap: 0x0030090d pcm0: Parse flags: 0x00000002 pcm0: Ctl flags: 0x00000881 pcm0: Output amp: 0x80050f00 pcm0: mute=1 step=15 size=5 offset=0 pcm0: connections: 1 pcm0: | pcm0: + <- nid=12 [audio selector] pcm0: pcm0: nid: 11 [ANALOG] pcm0: name: audio selector pcm0: widget_cap: 0x00300105 pcm0: Parse flags: 0x00000001 pcm0: Ctl flags: 0x00000000 pcm0: Output amp: 0x80051f1f pcm0: mute=1 step=31 size=5 offset=31 pcm0: connections: 1 pcm0: | pcm0: + <- nid=7 [audio selector] pcm0: pcm0: nid: 12 [ANALOG] pcm0: name: audio selector pcm0: widget_cap: 0x0030010d pcm0: Parse flags: 0x00000006 pcm0: Ctl flags: 0x00000081 pcm0: Output amp: 0x270400 pcm0: mute=0 step=4 size=39 offset=0 pcm0: connections: 5 pcm0: | pcm0: + <- nid=16 [pin: Mic in (jack / fixed)] (selected) pcm0: | pcm0: + <- nid=15 [pin: line in (jack)] pcm0: | pcm0: + <- nid=14 [pin: line out (jack / fixed)] pcm0: | pcm0: + <- nid=13 [pin: other (none)] [DISABLED] pcm0: | pcm0: + <- nid=18 [pin: other (none)] [DISABLED] pcm0: pcm0: nid: 13 [ANALOG] [DISABLED] pcm0: name: pin: other (none) pcm0: widget_cap: 0x00400181 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Pin cap: 0x0000003f pcm0: ISC TRQD HP OUT IN : UNSOL pcm0: Pin config: 0x40f000fa pcm0: Pin control: 0x000000e0 HP IN OUT pcm0: connections: 1 pcm0: | pcm0: + <- nid=11 [audio selector] pcm0: pcm0: nid: 14 [ANALOG] pcm0: name: pin: line out (jack / fixed) pcm0: widget_cap: 0x00400181 pcm0: Parse flags: 0x00000001 pcm0: Ctl flags: 0x00000000 pcm0: Pin cap: 0x0000003f pcm0: ISC TRQD HP OUT IN : UNSOL pcm0: Pin config: 0xd0070110 pcm0: Pin control: 0x00000040 OUT pcm0: connections: 1 pcm0: | pcm0: + <- nid=11 [audio selector] pcm0: pcm0: nid: 15 [ANALOG] pcm0: name: pin: line in (jack) pcm0: widget_cap: 0x00400181 pcm0: Parse flags: 0x00000002 pcm0: Ctl flags: 0x00000000 pcm0: Pin cap: 0x00000037 pcm0: ISC TRQD OUT IN : UNSOL pcm0: Pin config: 0x2181112e pcm0: Pin control: 0x00000020 IN pcm0: connections: 1 pcm0: | pcm0: + <- nid=11 [audio selector] pcm0: pcm0: nid: 16 [ANALOG] pcm0: name: pin: Mic in (jack / fixed) pcm0: widget_cap: 0x00400181 pcm0: Parse flags: 0x00000002 pcm0: Ctl flags: 0x00000081 pcm0: Pin cap: 0x00001737 pcm0: ISC TRQD OUT IN : UNSOL pcm0: Pin config: 0xc4a11120 pcm0: Pin control: 0x00000020 IN pcm0: connections: 1 pcm0: | pcm0: + <- nid=11 [audio selector] pcm0: pcm0: nid: 17 [ANALOG] [DISABLED] pcm0: name: pin: other (none) pcm0: widget_cap: 0x00400104 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Pin cap: 0x00000010 pcm0: OUT pcm0: Pin config: 0x40f000fb pcm0: Pin control: 0x00000040 OUT pcm0: Output amp: 0x80051f1f pcm0: mute=1 step=31 size=5 offset=31 pcm0: connections: 1 pcm0: | pcm0: + <- nid=19 [audio mixer] pcm0: pcm0: nid: 18 [ANALOG] [DISABLED] pcm0: name: pin: other (none) pcm0: widget_cap: 0x00400001 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Pin cap: 0x00000020 pcm0: IN pcm0: Pin config: 0x40f000fc pcm0: Pin control: 0x00000020 IN pcm0: connections: 0 pcm0: pcm0: nid: 19 [ANALOG] pcm0: name: audio mixer pcm0: widget_cap: 0x00200100 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: connections: 1 pcm0: | pcm0: + <- nid=7 [audio selector] pcm0: pcm0: nid: 20 [ANALOG] pcm0: name: beep widget pcm0: widget_cap: 0x0070000c pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000021 pcm0: Output amp: 0x80170303 pcm0: mute=1 step=3 size=23 offset=3 pcm0: connections: 0 pcm0: pcm0: +------------------------+ pcm0: | DUMPING HDA AMPLIFIERS | pcm0: +------------------------+ pcm0: pcm0: 1: nid=10 dir=0x1 index=0 ossmask=0x00000800 ossdev=0 pcm0: 2: nid=11 dir=0x1 index=0 ossmask=0x00000000 ossdev=0 pcm0: 3: nid=12 dir=0x1 index=0 ossmask=0x00000081 ossdev=7 pcm0: 4: nid=17 dir=0x1 index=0 ossmask=0x00000000 ossdev=0 [DISABLED] pcm0: 5: nid=20 dir=0x1 index=0 ossmask=0x00000021 ossdev=5 pcm0: pcm0: +-----------------------------------+ pcm0: | DUMPING HDA AUDIO/VOLUME CONTROLS | pcm0: +-----------------------------------+ pcm0: pcm0: Master Volume (OSS: vol) pcm0: | pcm0: +- nid: 12 index: 0 mute: 0 step: 4 size: 39 off: 0 dir=0x1 ossmask=0x00000081 pcm0: | pcm0: +- nid: 20 index: 0 mute: 1 step: 3 size: 23 off: 3 dir=0x1 ossmask=0x00000021 pcm0: pcm0: Microphone Volume (OSS: mic) pcm0: | pcm0: +- nid: 12 index: 0 mute: 0 step: 4 size: 39 off: 0 dir=0x1 ossmask=0x00000081 pcm0: pcm0: Recording Level (OSS: rec) pcm0: | pcm0: +- nid: 10 index: 0 mute: 1 step: 15 size: 5 off: 0 dir=0x1 ossmask=0x00000800 pcm0: pcm0: Speaker/Beep (OSS: speaker) pcm0: | pcm0: +- nid: 20 index: 0 mute: 1 step: 3 size: 23 off: 3 dir=0x1 ossmask=0x00000021 pcm0: pcm0: Recording sources: pcm0: pcm0: nid=12 [audio selector] pcm0: | pcm0: + <- nid=16 [pin: Mic in (jack / fixed)] [recsrc: vol, mic] pcm0: | pcm0: + <- nid=15 [pin: line in (jack)] pcm0: | pcm0: + <- nid=14 [pin: line out (jack / fixed)] pcm0: pcm0: +--------------------------------------+ pcm0: | DUMPING PCM Playback/Record Channels | pcm0: +--------------------------------------+ pcm0: pcm0: PCM Playback: 1 pcm0: Stream cap: 0x00000001 pcm0: Format: PCM pcm0: PCM cap: 0x000e07e0 pcm0: PCM size: 16 20 24 pcm0: PCM rate: 11 16 22 32 44 48 pcm0: DAC: 2 pcm0: pcm0: PCM Record: 1 pcm0: Stream cap: 0x00000001 pcm0: Format: PCM pcm0: PCM cap: 0x000e07e0 pcm0: PCM size: 16 20 24 pcm0: PCM rate: 11 16 22 32 44 48 pcm0: ADC: 3 pcm0: PCMDIR_PLAY: Stream setup nid=2 fmt=0x00000011 -- This .signature sanitized for your protection
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060929135351.T90463>