[UPDATE] RFC: snd_hda(4) -- Intel High Definition Audio driver

Ganbold ganbold at micom.mng.net
Sun Sep 10 19:21:05 PDT 2006


Joel Dahl wrote:
> 1.  Make sure that you always have the latest source code from
> http://people.freebsd.org/~ariff/HDA/ since the code is updated on a
> daily basis (the directory is hidden by the index file, so date, size
> etc does not reflect the true nature of the files there).
>
> 2.  Join #freebsd-azalia @ freenode and describe your problem.  Email is
> a good way to communicate, but discussing bug reports and testing
> patches in real-time on IRC is a lot more efficient.
>
>   
I have FreeBSD-6.1-STABLE on Dell D620 laptop which has:

pcm0 at pci0:27:0: class=0x040300 card=0x01c21028 chip=0x27d88086 rev=0x01 
hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801G (ICH7 Family) High Definition Audio'
    class    = multimedia

I can get sound, but I can't change speaker volume in gnome. I tried 
with /usr/sbin/mixer, however I couldn't.

# mixer 40:40
Setting the mixer vol from 75:75 to 40:40.
devil# mixer
Mixer vol      is currently set to  40:40
Mixer speaker  is currently set to  75:75
Mixer mic      is currently set to   0:0
Mixer rec      is currently set to   0:0
Recording source: mic
devil# mixer -f speaker 40:40
mixer: speaker: No such file or directory


# uname -an
FreeBSD devil.micom.mng.net 6.1-STABLE FreeBSD 6.1-STABLE #17: Wed Sep  
6 18:16:49 ULAST 2006     
tsgan at devil.micom.mng.net:/usr/obj/usr/src/sys/DEVIL  i386

# sysctl hw.snd.verbose=2 ; cat /dev/sndstat
hw.snd.verbose: 1 -> 2
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel 82801G High Definition Audio Controller> at memory 
0xdfebc000 irq 21 kld snd_hda [20060910_006] (1p/1r/0v channels duplex 
default)
        [pcm0:play:0:dsp0.0]: spd 0, fmt 0x00000000/0x00000008, flags 
0x00000000, 0x00000000
        interrupts 0, underruns 0, ready 0 [b:16384/8192/2|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        [pcm0:record:0:dsp0.1]: spd 0, fmt 0x00000000/0x00000008, flags 
0x00000000, 0x00000000
        interrupts 0, overruns 0, hfree 16384, sfree 0 
[b:16384/8192/2|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}

# sysctl hw.snd
hw.snd.report_soft_formats: 1
hw.snd.targetirqrate: 32
hw.snd.verbose: 2
hw.snd.maxautovchans: 0
hw.snd.unit: 0
hw.snd.pcm0.buffersize: 16384
hw.snd.pcm0.vchans: 0

# mixer
Mixer vol      is currently set to  75:75
Mixer speaker  is currently set to  75:75
Mixer mic      is currently set to   0:0
Mixer rec      is currently set to   0:0
Recording source: mic


# dmesg | grep ^pcm
pcm0: <Intel 82801G High Definition Audio Controller> mem 
0xdfebc000-0xdfebffff irq 21 at device 27.0 on pci0
pcm0: Output Streams: 4, Input Streams: 4, Bidirectional Streams: 0
pcm0: CORB Size: 256, RIRB Size: 256
pcm0: Codec 1 power state: low power (D2), powering up...
pcm0: Widget 2 is type Audio Output, capabilities 0x401<power,stereo>
pcm0: Widget 3 is type Audio Input, capabilities 
0x541<power,connlist,proc,stereo>
pcm0: Widget 4 is type Audio Input, capabilities 
0x311<digital,connlist,fmtoverride,stereo>
pcm0: Widget 5 is type Audio Output, capabilities 
0x211<digital,fmtoverride,stereo>
pcm0: Widget 6 is type Vendor-defined, capabilities 0x201<digital,stereo>
pcm0: Widget 7 is type Audio Selector, capabilities 
0x901<lrswap,connlist,stereo>
pcm0: Widget 8 is type Pin Complex, capabilities 
0x681<power,digital,unsol,stereo>
pcm0: Widget 9 is type Pin Complex, capabilities 
0x301<digital,connlist,stereo>
pcm0: Widget 10 is type Audio Selector, capabilities 
0x90d<lrswap,connlist,ampoverride,outamp,stereo>
pcm0: Widget 11 is type Audio Selector, capabilities 
0x105<connlist,outamp,stereo>
pcm0: Widget 12 is type Audio Selector, capabilities 
0x10d<connlist,ampoverride,outamp,stereo>
pcm0: Widget 13 is type Pin Complex, capabilities 
0x181<connlist,unsol,stereo>
pcm0: Widget 14 is type Pin Complex, capabilities 
0x181<connlist,unsol,stereo>
pcm0: Widget 15 is type Pin Complex, capabilities 
0x181<connlist,unsol,stereo>
pcm0: Widget 16 is type Pin Complex, capabilities 
0x181<connlist,unsol,stereo>
pcm0: Widget 17 is type Pin Complex, capabilities 0x104<connlist,outamp>
pcm0: Widget 18 is type Pin Complex, capabilities 0x1<stereo>
pcm0: Widget 19 is type Audio Mixer, capabilities 0x100<connlist>
pcm0: Widget 20 is type Beep Generator Widget, capabilities 
0xc<ampoverride,outamp>
pcm0: unregister: mixer busy
pcm0: detached
pcm0: <Intel 82801G High Definition Audio Controller> mem 
0xdfebc000-0xdfebffff irq 21 at device 27.0 on pci0
pcm0: <HDA Driver Revision: 20060910_006>
pcm0: unregister: mixer busy
pcm0: detached
pcm0: <Intel 82801G High Definition Audio Controller> mem 
0xdfebc000-0xdfebffff irq 21 at device 27.0 on pci0
pcm0: [MPSAFE]
pcm0:        Vendor: 0x00008384
pcm0:        Device: 0x00007690
pcm0:      Revision: 0x00000022
pcm0:      Stepping: 0x00000001
pcm0: PCI Subvendor: 0x01c21028
pcm0:         Nodes: start=2 endnode=21 total=19
pcm0: [ 2] Ctl nid=11 Bind to NONE
pcm0: [ 4] Ctl nid=17 DISABLED
pcm0: sndbuf_setmap 3e09b000, 4000; 0xe7427000 -> 3e09b000
pcm0: sndbuf_setmap 3e097000, 4000; 0xe742b000 -> 3e097000
pcm0: <HDA Driver Revision: 20060910_006>
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: SPDIF in (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: SPDIF in (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=10 [audio selector]
pcm0:
pcm0:             nid: 8 [DIGITAL] [DISABLED]
pcm0:            name: pin: SPDIF in (none)
pcm0:      widget_cap: 0x00430681
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x00010024
pcm0:                  IN EAPD : UNSOL
pcm0:     Pin control: 0x00000020 IN
pcm0:            EAPD: 0x00000002
pcm0:     connections: 0
pcm0:
pcm0:             nid: 9 [DIGITAL] [DISABLED]
pcm0:            name: pin: SPDIF out (jack)
pcm0:      widget_cap: 0x00400301
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x00000010
pcm0:                  OUT
pcm0:     Pin control: 0x00000040 OUT
pcm0:            EAPD: 0x00000000
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)] (selected)
pcm0:           |
pcm0:           + <- nid=15 [pin: Mic in (fixed)]
pcm0:           |
pcm0:           + <- nid=14 [pin: speaker (fixed)]
pcm0:           |
pcm0:           + <- nid=13 [pin: headphones out (jack)]
pcm0:           |
pcm0:           + <- nid=18 [pin: CD (none)] [DISABLED]
pcm0:
pcm0:             nid: 13 [ANALOG]
pcm0:            name: pin: headphones out (jack)
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 control: 0x000000c0 HP OUT
pcm0:            EAPD: 0x00000000
pcm0:     connections: 1
pcm0:           |
pcm0:           + <- nid=11 [audio selector]
pcm0:
pcm0:             nid: 14 [ANALOG]
pcm0:            name: pin: speaker (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 control: 0x00000040 OUT
pcm0:            EAPD: 0x00000000
pcm0:     connections: 1
pcm0:           |
pcm0:           + <- nid=11 [audio selector]
pcm0:
pcm0:             nid: 15 [ANALOG]
pcm0:            name: pin: Mic in (fixed)
pcm0:      widget_cap: 0x00400181
pcm0:     Parse flags: 0x00000002
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x00000037
pcm0:                  ISC TRQD OUT IN : UNSOL
pcm0:     Pin control: 0x00000020 IN
pcm0:            EAPD: 0x00000000
pcm0:     connections: 1
pcm0:           |
pcm0:           + <- nid=11 [audio selector]
pcm0:
pcm0:             nid: 16 [ANALOG]
pcm0:            name: pin: Mic in (jack)
pcm0:      widget_cap: 0x00400181
pcm0:     Parse flags: 0x00000002
pcm0:       Ctl flags: 0x00000081
pcm0:         Pin cap: 0x00001737
pcm0:                  ISC TRQD OUT IN : UNSOL
pcm0:     Pin control: 0x00000020 IN
pcm0:            EAPD: 0x00000000
pcm0:     connections: 1
pcm0:           |
pcm0:           + <- nid=11 [audio selector]
pcm0:
pcm0:             nid: 17 [ANALOG] [DISABLED]
pcm0:            name: pin: speaker (none)
pcm0:      widget_cap: 0x00400104
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x00000010
pcm0:                  OUT
pcm0:     Pin control: 0x00000040 OUT
pcm0:            EAPD: 0x00000000
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: CD (none)
pcm0:      widget_cap: 0x00400001
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x00000020
pcm0:                  IN
pcm0:     Pin control: 0x00000020 IN
pcm0:            EAPD: 0x00000000
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 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=00000081
pcm0:    |
pcm0:    +-  nid: 20 index:  0           mute: 1 step:   3 size:  23 
off:   3 dir=0x1 ossmask=00000021
pcm0:
pcm0: Microphone Volume (OSS: mic)
pcm0:    |
pcm0:    +-  nid: 12 index:  0           mute: 0 step:   4 size:  39 
off:   0 dir=0x1 ossmask=00000081
pcm0:
pcm0: Recording Level (OSS: rec)
pcm0:    |
pcm0:    +-  nid: 10 index:  0           mute: 1 step:  15 size:   5 
off:   0 dir=0x1 ossmask=00000800
pcm0:
pcm0: Speaker/Beep (OSS: speaker)
pcm0:    |
pcm0:    +-  nid: 20 index:  0           mute: 1 step:   3 size:  23 
off:   3 dir=0x1 ossmask=00000021
pcm0:
pcm0: Recording sources:
pcm0:
pcm0:     nid=12 [audio selector]
pcm0:       |
pcm0:       + <- nid=16 [pin: Mic in (jack)] [recsrc: vol, mic]
pcm0:       |
pcm0:       + <- nid=15 [pin: Mic in (fixed)]
pcm0:       |
pcm0:       + <- nid=14 [pin: speaker (fixed)]
pcm0:       |
pcm0:       + <- nid=13 [pin: headphones out (jack)]
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:
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




More information about the freebsd-multimedia mailing list