HEADS UP: Last call for snd_hda(4) testers - High Definition Audio driver

Wesley Morgan morganw at chemikals.org
Fri Sep 29 11:10:11 PDT 2006


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


More information about the freebsd-multimedia mailing list