From owner-freebsd-multimedia@FreeBSD.ORG Mon Dec 11 15:55:56 2006 Return-Path: X-Original-To: multimedia@freebsd.org Delivered-To: freebsd-multimedia@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 2EFF316A417 for ; Mon, 11 Dec 2006 15:55:56 +0000 (UTC) (envelope-from tamaru@myn.rcast.u-tokyo.ac.jp) Received: from mail1.ecc.u-tokyo.ac.jp (mail1.ecc.u-tokyo.ac.jp [133.11.50.203]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2BA5743CD7 for ; Mon, 11 Dec 2006 15:53:59 +0000 (GMT) (envelope-from tamaru@myn.rcast.u-tokyo.ac.jp) Received: from spam004.ecc.u-tokyo.ac.jp (spam004.ecc.u-tokyo.ac.jp [133.11.50.197]) by mail1.ecc.u-tokyo.ac.jp (Postfix) with ESMTP id EE94C1006C for ; Tue, 12 Dec 2006 00:55:14 +0900 (JST) Received: from md001.ecc.u-tokyo.ac.jp (192.168.160.21 [192.168.160.21]) by spam004.ecc.u-tokyo.ac.jp (SpamBlock.pst 3.4.94) with ESMTP id for ; Tue, 12 Dec 2006 00:54:27 +0900 Received: from amulet.amuletic.net (v055252.ppp.asahi-net.or.jp [124.155.55.252]) by md001.ecc.u-tokyo.ac.jp (MOS 3.4.5-GR) with ESMTP id BOR80436 (AUTH via LOGINBEFORESMTP); Tue, 12 Dec 2006 00:54:26 +0900 (JST) Date: Tue, 12 Dec 2006 00:54:26 +0900 Message-ID: From: Hiroharu Tamaru To: Ariff Abdullah In-Reply-To: References: <20061207010750.4f73bc15.ariff@FreeBSD.org> User-Agent: User-Agent: Wanderlust/2.14.0 (Africa) Emacs/21.3 Mule/5.0 (SAKAKI) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-IP: 192.168.160.21 X-FROM-DOMAIN: myn.rcast.u-tokyo.ac.jp X-FROM-EMAIL: tamaru@myn.rcast.u-tokyo.ac.jp Cc: multimedia@freebsd.org Subject: Re: snd_hda: loud distorted sound with NVidia MCP51 X-BeenThere: freebsd-multimedia@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Multimedia discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Dec 2006 15:55:56 -0000 Hi, Ariff, I hope you don't mind my bothering you for another run. I've now tried the 4Front opensound driver. It turned out that the initial mixer settings gave the same kind of distorted sound, but adjusting in the ossmix (for pin function and mutes and NOT the volume) made it all fine. Could this experience be used to tune snd_hda driver for my environment? I now kind of partially understand (or am able to imagine..) what the HDA node dumps in the pcm0 verbose dmesg mean ;-) Is it possible to mute arbitrary connection to an "audio mixer" nodes from userland? or do I have to get your source patches and start working with them? In my case, I think it is most important to mute the second connection(nid=15) to nid=28 pcm0: nid: 28 [ANALOG] pcm0: name: audio mixer pcm0: widget_cap: 0x0020010b pcm0: Parse flags: 0x00000002 pcm0: Ctl flags: 0x00000041 pcm0: Input amp: 0x80000000 pcm0: mute=1 step=0 size=0 offset=0 pcm0: connections: 2 pcm0: | pcm0: + <- nid=12 [pin: line in (jack)] pcm0: | pcm0: + <- nid=15 [pin: headphones out (jack)] Playing with the 4Front ossmix, it appears that any pin that is assigned as output behaves like an input pin that passes whatever it is playing out of this pin to the upper mixer. In the above case, whatever is output to pin nid=15 is also sent to mixer nid=28 which in turn is sent to mixer nid=25, and then again to pin nid=15, forming a loop. The pin nid=15 connection to mixer nid=28 is there to be used when pin nid=15 is configured as an input pin, so I assume it must be muted here if pin nid=15 is to be used as an output. Can you tell from the logs whether it is already muted or not? There seems to be other ways of making loops in this setup. How should I proceed to check them around? I looked into the source patches as well, but unfortunately I was able to understand very little of them yet. Am I speaking something reasonable? Or, am I completely lost? Details below. Thank you Hiroharu Tamaru =========================================================================== First from the 4Front driver. % ossinfo Version info: OSS 4.0rc2 (build 179/200611230255) (0x00040001) Number of audio devices: 18 Number of audio engines: 0 Number of MIDI devices: 0 Number of mixer devices: 2 Device objects 0: hdaudio0 nVidia nForce4 High Definition Audio 1: softoss0 OSS Virtual Mixer v3.0 MIDI devices (/dev/midi*) Mixer devices (/dev/mixer*) 0: nVidia nForce4 High Definition A' (Mixer 0 of device object 0) 1: Virtual Mixer (Mixer 0 of device object 1) Audio devices /dev/oss/hdaudio0/pcm0: nVidia nForce4 High Definition Audio play-front output (device index 0) /dev/oss/hdaudio0/pcm1: nVidia nForce4 High Definition Audio play-side output (device index 1) /dev/oss/hdaudio0/pcm2: nVidia nForce4 High Definition Audio play-center/LFE output (device index 2) /dev/oss/hdaudio0/pcm3: nVidia nForce4 High Definition Audio play-rear output (device index 3) /dev/oss/hdaudio0/pcm4: nVidia nForce4 High Definition Audio play-front output (device index 4) /dev/oss/hdaudio0/pcm5: nVidia nForce4 High Definition Audio rec input (device index 5) /dev/oss/softoss0/pcm0: OSS Virtual Mixer v3.0 Playback CH #1 (device index 6) /dev/oss/softoss0/pcm1: OSS Virtual Mixer v3.0 Playback CH #2 (device index 7) /dev/oss/softoss0/pcm2: OSS Virtual Mixer v3.0 Playback CH #3 (device index 8) /dev/oss/softoss0/pcm3: OSS Virtual Mixer v3.0 Playback CH #4 (device index 9) /dev/oss/softoss0/pcm4: OSS Virtual Mixer v3.0 Playback CH #5 (device index 10) /dev/oss/softoss0/pcm5: OSS Virtual Mixer v3.0 Playback CH #6 (device index 11) /dev/oss/softoss0/pcm6: OSS Virtual Mixer v3.0 Playback CH #7 (device index 12) /dev/oss/softoss0/pcm7: OSS Virtual Mixer v3.0 Playback CH #8 (device index 13) /dev/oss/softoss0/pcm8: Virtual Mixer Loopback Record CH #1 (device index 14) /dev/oss/softoss0/pcm9: Virtual Mixer Loopback Record CH #2 (device index 15) /dev/oss/softoss0/pcm10: Virtual Mixer Loopback Record CH #3 (device index 16) /dev/oss/softoss0/pcm11: Virtual Mixer Loopback Record CH #4 (device index 17) % ossmix Selected mixer 0/ Known controls are: connector.green1.play-frontmute ON|OFF (currently OFF) connector.green1.outmixmute ON|OFF (currently OFF) connector.blue.function (currently output) connector.blue.play-rearmute ON|OFF (currently OFF) connector.blue.outmixmute ON|OFF (currently OFF) connector.pink1.function (currently output) connector.pink1.play-center/lfe ON|OFF (currently OFF) connector.pink1.outmixmute ON|OFF (currently OFF) connector.black1.play-rearmute ON|OFF (currently OFF) connector.black1.outmixmute ON|OFF (currently OFF) connector.green2.function (currently output) connector.green2.mute.play-side ON|OFF (currently OFF) connector.green2.mute.play-rear ON|OFF (currently OFF) connector.green2.mute.outmix ON|OFF (currently OFF) connector.green2.mute.play-fron ON|OFF (currently OFF) connector.pink2.function (currently output) connector.pink2.mute.play-side ON|OFF (currently OFF) connector.pink2.mute.play-rear ON|OFF (currently OFF) connector.pink2.mute.outmix ON|OFF (currently OFF) connector.pink2.mute.play-front ON|OFF (currently OFF) connector.cd.function (currently mic-in) connector.black2.mute ON|OFF (currently OFF) connector.black3.play-center/lf ON|OFF (currently OFF) connector.black3.outmixmute ON|OFF (currently OFF) connector.black4.play-sidemute ON|OFF (currently OFF) connector.black4.outmixmute ON|OFF (currently OFF) [:] (currently 329:329) <-- (a) record.rec.src (currently pink1) misc.play-front.mute ON|OFF (currently OFF) misc.play-side.mute ON|OFF (currently OFF) misc.play-center/lfe.mute ON|OFF (currently OFF) misc.play-rear.mute ON|OFF (currently OFF) misc.recmix1.pink1mute ON|OFF (currently OFF) misc.recmix1.pink2mute ON|OFF (currently OFF) [:] (currently 569:569) <-- (b) [:] (currently 569:569) <-- (c) [:] (currently 569:569) <-- (d) [:] (currently 299:299) <-- (e) misc.line1mix.bluemute ON|OFF (currently ON) misc.line1mix.green2mute ON|OFF (currently ON) (currently 389) <---(f) on the GUI ossxmix: (a) is recording volume (b) is outmix cd vol (c) is outmix recmix1 vol (d) is outmix line1mix vol (e) is outmix master vol (f) is beep vol For sound output to /dev/oss/hdaudio0/pcm0 (play-front output) with "mplayer -ao oss:/dev/oss/hdaudio0/pcm0 foo.mp3", there are some combinations of mutes that gave undistorted output. Most effective knob was % ossmix misc.line1mix.green2mute ON So, this is what I imagined how the nodes should be configured: output : green1 & green2 line : blue mic : pink1 & pink2 cd : cd unused : black1 black2 black3 black4 [PCMoutputs] nid 3 : p-front nid 4 : p-side nid 5 : p-center nid 6 : p-rear nid 7 : spdif-out nid 35: beep [pins] nid 11 : line out (from 22) : green1 (p-front speaker) nid 12 : line in (from 25) : blue nid 13 : mic (from 24) : pink1 nid 14 : spkeaker disabled (from 25) : black2 (p-rear speaker) nid 15 : headphone out (from 26) : green2 nid 16 : mic (from 27) : pink2 nid 17 : CD input : cd nid 18 : spdif disabled nid 31 : speakder disabled (from 24) : black3 (p-center speaker) nid 32 : speaker disabled (from 23) : black4 (p-side speaker) audio mixers: nid connections where to go mute ------------------------------------------------------------------------------- nid 20: pink1(13) + pink2(16) : recmix1 : no mute nid 28: blue(12) + green2(15) : line1mix : mute green2(15) nid 21: cd(17) + recmix1(20) + line1mix(28) : outmix : no mute nid 22: p-front(3) + outmix(21) : green1(11) : no mute nid 23: p-side(4) + outmix(21) : black4(32) : mute all nid 24: p-center(5) + outmix(21) : pink1(13),black3(31): mute all nid 25: p-rear(6) + outmix(21) : blue(12),black2(14): mute all nid 26: p-side(4)+p-rear(6)+outmix(21)+p-front(3): green2 : no mute nid 27: p-side(4)+p-rear(6)+outmix(21)+p-front(3): pink2 : mute all ----------------------------------------------------------------------^^^^^^^^^ These are the mute states I'd assume. nid 8 : pink1(13)+blue(12)+green2(15)+pink2(16)+cd(17)+outmix(21): rec : always mute green2 select one of blue,(pink1+pink2),cd,vol nic 9 : vendor widget nic 10 : vendor widget pcm0: mem 0xfe028000-0xfe02bfff irq 20 at device 16.1 on pci0 pcm0: Reserved 0x4000 bytes for rid 0x10 type 3 at 0xfe028000 pcm0: [MPSAFE] pcm0: HDA_DEBUG: HDA Config: on=0x00000000 off=0x00000000 pcm0: HDA_DEBUG: Starting CORB Engine... pcm0: HDA_DEBUG: Starting RIRB Engine... pcm0: HDA_DEBUG: Enabling controller interrupt... pcm0: HDA_DEBUG: Scanning HDA codecs... pcm0: HDA_DEBUG: Probing codec: 0 pcm0: HDA_DEBUG: startnode=1 endnode=2 pcm0: HDA_DEBUG: Found AFG nid=1 [startnode=1 endnode=2] pcm0: HDA_DEBUG: Parsing AFG nid=1 cad=0 pcm0: Vendor: 0x000010ec pcm0: Device: 0x00000861 pcm0: Revision: 0x00000003 pcm0: Stepping: 0x000000c0 pcm0: PCI Subvendor: 0x81cb1043 pcm0: Nodes: start=3 endnode=36 total=33 pcm0: HDA_DEBUG: Parsing Ctls... pcm0: HDA_DEBUG: Parsing vendor patch... pcm0: HDA_DEBUG: Building AFG tree... pcm0: HDA_DEBUG: HWiP: HDA Widget Parser - Revision 1 pcm0: HDA_DEBUG: HWiP: Found 2 DAC path using HDA_PARSE_MIXER strategy. pcm0: HDA_DEBUG: AFG commit... pcm0: HDA_DEBUG: Ctls commit... pcm0: [ 3] Ctl nid=5 Bind to NONE pcm0: [ 5] Ctl nid=7 DISABLED pcm0: [ 9] Ctl nid=21 Bind to NONE pcm0: [11] Ctl nid=21 childnid=20 Bind to NONE pcm0: [12] Ctl nid=21 childnid=28 Bind to NONE pcm0: [13] Ctl nid=22 childnid=3 Bind to NONE pcm0: [14] Ctl nid=22 childnid=21 Bind to NONE pcm0: [15] Ctl nid=23 childnid=4 Bind to NONE pcm0: [16] Ctl nid=23 childnid=21 Bind to NONE pcm0: [17] Ctl nid=24 childnid=5 Bind to NONE pcm0: [18] Ctl nid=24 childnid=21 Bind to NONE pcm0: [19] Ctl nid=25 childnid=6 Bind to NONE pcm0: [20] Ctl nid=25 childnid=21 Bind to NONE pcm0: [21] Ctl nid=26 childnid=4 Bind to NONE pcm0: [22] Ctl nid=26 childnid=6 Bind to NONE pcm0: [23] Ctl nid=26 childnid=21 Bind to NONE pcm0: [24] Ctl nid=26 childnid=3 Bind to NONE pcm0: [25] Ctl nid=27 childnid=4 Bind to NONE pcm0: [26] Ctl nid=27 childnid=6 Bind to NONE pcm0: [27] Ctl nid=27 childnid=21 Bind to NONE pcm0: [28] Ctl nid=27 childnid=3 Bind to NONE pcm0: [30] Ctl nid=28 childnid=15 Bind to NONE pcm0: HDA_DEBUG: PCMDIR_PLAY setup... pcm0: HDA_DEBUG: PCMDIR_REC setup... pcm0: HDA_DEBUG: OSS mixer initialization... pcm0: HDA_DEBUG: Enabling Soft PCM volume pcm0: Mixer "vol": child=0x00000010 pcm0: Mixer "pcm": parent="vol" pcm0: Mixer "speaker": pcm0: Mixer "line": pcm0: Mixer "mic": pcm0: Mixer "cd": pcm0: Mixer "rec": pcm0: Soft PCM mixer ENABLED pcm0: HDA_DEBUG: Registering PCM channels... pcm0: sndbuf_setmap 3a752000, 4000; 0xe456a000 -> 3a752000 pcm0: sndbuf_setmap 3a737000, 4000; 0xe456e000 -> 3a737000 pcm0: pcm0: pcm0: pcm0: pcm0: HDA config/quirks: forcestereo pcm0: pcm0: +-------------------+ pcm0: | DUMPING HDA NODES | pcm0: +-------------------+ pcm0: pcm0: Default Parameter pcm0: ----------------- pcm0: Stream cap: 0x00000001 pcm0: Format: PCM pcm0: PCM cap: 0x000e0140 pcm0: PCM size: 16 20 24 pcm0: PCM rate: 48 96 pcm0: IN amp: 0x00000000 pcm0: OUT amp: 0x80000000 pcm0: pcm0: nid: 3 [ANALOG] pcm0: name: audio output pcm0: widget_cap: 0x00000405 pcm0: Parse flags: 0x00000001 pcm0: Ctl flags: 0x00000011 pcm0: Stream cap: 0x00000001 pcm0: Format: PCM pcm0: PCM cap: 0x000e0140 pcm0: PCM size: 16 20 24 pcm0: PCM rate: 48 96 pcm0: Output amp: 0x80000000 pcm0: mute=1 step=0 size=0 offset=0 pcm0: connections: 0 pcm0: pcm0: nid: 4 [ANALOG] pcm0: name: audio output pcm0: widget_cap: 0x00000405 pcm0: Parse flags: 0x00000001 pcm0: Ctl flags: 0x00000011 pcm0: Stream cap: 0x00000001 pcm0: Format: PCM pcm0: PCM cap: 0x000e0140 pcm0: PCM size: 16 20 24 pcm0: PCM rate: 48 96 pcm0: Output amp: 0x80000000 pcm0: mute=1 step=0 size=0 offset=0 pcm0: connections: 0 pcm0: pcm0: nid: 5 [ANALOG] pcm0: name: audio output pcm0: widget_cap: 0x00000405 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Stream cap: 0x00000001 pcm0: Format: PCM pcm0: PCM cap: 0x000e0140 pcm0: PCM size: 16 20 24 pcm0: PCM rate: 48 96 pcm0: Output amp: 0x80000000 pcm0: mute=1 step=0 size=0 offset=0 pcm0: connections: 0 pcm0: pcm0: nid: 6 [ANALOG] pcm0: name: audio output pcm0: widget_cap: 0x00000405 pcm0: Parse flags: 0x00000001 pcm0: Ctl flags: 0x00000011 pcm0: Stream cap: 0x00000001 pcm0: Format: PCM pcm0: PCM cap: 0x000e0140 pcm0: PCM size: 16 20 24 pcm0: PCM rate: 48 96 pcm0: Output amp: 0x80000000 pcm0: mute=1 step=0 size=0 offset=0 pcm0: connections: 0 pcm0: pcm0: nid: 7 [DIGITAL] [DISABLED] pcm0: name: audio output pcm0: widget_cap: 0x00000605 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Stream cap: 0x00000001 pcm0: Format: PCM pcm0: PCM cap: 0x000e0140 pcm0: PCM size: 16 20 24 pcm0: PCM rate: 48 96 pcm0: Output amp: 0x80000000 pcm0: mute=1 step=0 size=0 offset=0 pcm0: connections: 0 pcm0: pcm0: nid: 8 [ANALOG] pcm0: name: audio input pcm0: widget_cap: 0x0010051b pcm0: Parse flags: 0x00000006 pcm0: Ctl flags: 0x00000800 pcm0: Stream cap: 0x00000001 pcm0: Format: PCM pcm0: PCM cap: 0x00020140 pcm0: PCM size: 16 pcm0: PCM rate: 48 96 pcm0: Input amp: 0x800b0d02 pcm0: mute=1 step=13 size=11 offset=2 pcm0: connections: 6 pcm0: | pcm0: + <- nid=13 [pin: Mic in (jack)] (selected) pcm0: | pcm0: + <- nid=12 [pin: line in (jack)] pcm0: | pcm0: + <- nid=15 [pin: headphones out (jack)] pcm0: | pcm0: + <- nid=16 [pin: Mic in (jack)] pcm0: | pcm0: + <- nid=17 [pin: CD (fixed)] pcm0: | pcm0: + <- nid=21 [audio mixer] pcm0: pcm0: nid: 9 [ANALOG] pcm0: name: vendor widget pcm0: widget_cap: 0x00f00000 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: connections: 0 pcm0: pcm0: nid: 10 [ANALOG] pcm0: name: vendor widget pcm0: widget_cap: 0x00f00000 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: connections: 0 pcm0: pcm0: nid: 11 [ANALOG] pcm0: name: pin: line out (jack) pcm0: widget_cap: 0x00400581 pcm0: Parse flags: 0x00000001 pcm0: Ctl flags: 0x00000000 pcm0: Pin cap: 0x0000001f pcm0: ISC TRQD HP OUT : UNSOL pcm0: Pin config: 0x01014010 pcm0: Pin control: 0x00000040 OUT pcm0: connections: 1 pcm0: | pcm0: + <- nid=22 [audio mixer] pcm0: pcm0: nid: 12 [ANALOG] pcm0: name: pin: line in (jack) pcm0: widget_cap: 0x00400581 pcm0: Parse flags: 0x00000002 pcm0: Ctl flags: 0x00000041 pcm0: Pin cap: 0x00000037 pcm0: ISC TRQD OUT IN : UNSOL pcm0: Pin config: 0x01813030 pcm0: Pin control: 0x00000020 IN pcm0: connections: 1 pcm0: | pcm0: + <- nid=25 [audio mixer] pcm0: pcm0: nid: 13 [ANALOG] pcm0: name: pin: Mic in (jack) pcm0: widget_cap: 0x00400581 pcm0: Parse flags: 0x00000002 pcm0: Ctl flags: 0x00000081 pcm0: Pin cap: 0x00000337 pcm0: ISC TRQD OUT IN : UNSOL pcm0: Pin config: 0x01a19831 pcm0: Pin control: 0x00000020 IN pcm0: connections: 1 pcm0: | pcm0: + <- nid=24 [audio mixer] pcm0: pcm0: nid: 14 [ANALOG] [DISABLED] pcm0: name: pin: speaker (none) pcm0: widget_cap: 0x00400581 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Pin cap: 0x00000017 pcm0: ISC TRQD OUT : UNSOL pcm0: Pin config: 0x411111f0 pcm0: Pin control: 0x00000040 OUT pcm0: connections: 1 pcm0: | pcm0: + <- nid=25 [audio mixer] pcm0: pcm0: nid: 15 [ANALOG] pcm0: name: pin: headphones out (jack) pcm0: widget_cap: 0x00400581 pcm0: Parse flags: 0x00000001 pcm0: Ctl flags: 0x00000000 pcm0: Pin cap: 0x0000033f pcm0: ISC TRQD HP OUT IN : UNSOL pcm0: Pin config: 0x0221401f pcm0: Pin control: 0x000000c0 HP OUT pcm0: connections: 1 pcm0: | pcm0: + <- nid=26 [audio mixer] pcm0: pcm0: nid: 16 [ANALOG] pcm0: name: pin: Mic in (jack) pcm0: widget_cap: 0x00400581 pcm0: Parse flags: 0x00000002 pcm0: Ctl flags: 0x00000081 pcm0: Pin cap: 0x0000033f pcm0: ISC TRQD HP OUT IN : UNSOL pcm0: Pin config: 0x02a1983e pcm0: Pin control: 0x00000020 IN pcm0: connections: 1 pcm0: | pcm0: + <- nid=27 [audio mixer] pcm0: pcm0: nid: 17 [ANALOG] pcm0: name: pin: CD (fixed) pcm0: widget_cap: 0x00400001 pcm0: Parse flags: 0x00000002 pcm0: Ctl flags: 0x00000101 pcm0: Pin cap: 0x00000063 pcm0: ISC TRQD IN BAL pcm0: Pin config: 0x99330132 pcm0: Pin control: 0x00000020 IN pcm0: connections: 0 pcm0: pcm0: nid: 18 [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 config: 0x01451120 pcm0: Pin control: 0x00000040 OUT pcm0: connections: 1 pcm0: | pcm0: + <- nid=7 [audio output] [DISABLED] pcm0: pcm0: nid: 19 [ANALOG] pcm0: name: vendor widget pcm0: widget_cap: 0x00f00000 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: connections: 0 pcm0: pcm0: nid: 20 [ANALOG] pcm0: name: audio mixer pcm0: widget_cap: 0x0020010b pcm0: Parse flags: 0x00000002 pcm0: Ctl flags: 0x00000081 pcm0: Input amp: 0x80000000 pcm0: mute=1 step=0 size=0 offset=0 pcm0: connections: 2 pcm0: | pcm0: + <- nid=13 [pin: Mic in (jack)] pcm0: | pcm0: + <- nid=16 [pin: Mic in (jack)] pcm0: pcm0: nid: 21 [ANALOG] pcm0: name: audio mixer pcm0: widget_cap: 0x0020050f pcm0: Parse flags: 0x00000002 pcm0: Ctl flags: 0x000001c1 pcm0: Output amp: 0x800b0c0c pcm0: mute=1 step=12 size=11 offset=12 pcm0: Input amp: 0x800b170c pcm0: mute=1 step=23 size=11 offset=12 pcm0: connections: 3 pcm0: | pcm0: + <- nid=17 [pin: CD (fixed)] pcm0: | pcm0: + <- nid=20 [audio mixer] pcm0: | pcm0: + <- nid=28 [audio mixer] pcm0: pcm0: nid: 22 [ANALOG] pcm0: name: audio mixer pcm0: widget_cap: 0x0020010b pcm0: Parse flags: 0x00000001 pcm0: Ctl flags: 0x000001d1 pcm0: Input amp: 0x80000000 pcm0: mute=1 step=0 size=0 offset=0 pcm0: connections: 2 pcm0: | pcm0: + <- nid=3 [audio output] pcm0: | pcm0: + <- nid=21 [audio mixer] pcm0: pcm0: nid: 23 [ANALOG] pcm0: name: audio mixer pcm0: widget_cap: 0x0020010b pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Input amp: 0x80000000 pcm0: mute=1 step=0 size=0 offset=0 pcm0: connections: 2 pcm0: | pcm0: + <- nid=4 [audio output] pcm0: | pcm0: + <- nid=21 [audio mixer] pcm0: pcm0: nid: 24 [ANALOG] pcm0: name: audio mixer pcm0: widget_cap: 0x0020010b pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Input amp: 0x80000000 pcm0: mute=1 step=0 size=0 offset=0 pcm0: connections: 2 pcm0: | pcm0: + <- nid=5 [audio output] pcm0: | pcm0: + <- nid=21 [audio mixer] pcm0: pcm0: nid: 25 [ANALOG] pcm0: name: audio mixer pcm0: widget_cap: 0x0020010b pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Input amp: 0x80000000 pcm0: mute=1 step=0 size=0 offset=0 pcm0: connections: 2 pcm0: | pcm0: + <- nid=6 [audio output] pcm0: | pcm0: + <- nid=21 [audio mixer] pcm0: pcm0: nid: 26 [ANALOG] pcm0: name: audio mixer pcm0: widget_cap: 0x0020010b pcm0: Parse flags: 0x00000001 pcm0: Ctl flags: 0x00000011 pcm0: Input amp: 0x80000000 pcm0: mute=1 step=0 size=0 offset=0 pcm0: connections: 4 pcm0: | pcm0: + <- nid=4 [audio output] pcm0: | pcm0: + <- nid=6 [audio output] pcm0: | pcm0: + <- nid=21 [audio mixer] pcm0: | pcm0: + <- nid=3 [audio output] pcm0: pcm0: nid: 27 [ANALOG] pcm0: name: audio mixer pcm0: widget_cap: 0x0020010b pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Input amp: 0x80000000 pcm0: mute=1 step=0 size=0 offset=0 pcm0: connections: 4 pcm0: | pcm0: + <- nid=4 [audio output] pcm0: | pcm0: + <- nid=6 [audio output] pcm0: | pcm0: + <- nid=21 [audio mixer] pcm0: | pcm0: + <- nid=3 [audio output] pcm0: pcm0: nid: 28 [ANALOG] pcm0: name: audio mixer pcm0: widget_cap: 0x0020010b pcm0: Parse flags: 0x00000002 pcm0: Ctl flags: 0x00000041 pcm0: Input amp: 0x80000000 pcm0: mute=1 step=0 size=0 offset=0 pcm0: connections: 2 pcm0: | pcm0: + <- nid=12 [pin: line in (jack)] pcm0: | pcm0: + <- nid=15 [pin: headphones out (jack)] pcm0: pcm0: nid: 29 [ANALOG] pcm0: name: vendor widget pcm0: widget_cap: 0x00f00000 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: connections: 0 pcm0: pcm0: nid: 30 [ANALOG] pcm0: name: vendor widget pcm0: widget_cap: 0x00f00000 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: connections: 0 pcm0: pcm0: nid: 31 [ANALOG] [DISABLED] pcm0: name: pin: speaker (none) pcm0: widget_cap: 0x00400581 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Pin cap: 0x00000017 pcm0: ISC TRQD OUT : UNSOL pcm0: Pin config: 0x411111f0 pcm0: Pin control: 0x00000040 OUT pcm0: connections: 1 pcm0: | pcm0: + <- nid=24 [audio mixer] pcm0: pcm0: nid: 32 [ANALOG] [DISABLED] pcm0: name: pin: speaker (none) pcm0: widget_cap: 0x00400581 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: Pin cap: 0x00000017 pcm0: ISC TRQD OUT : UNSOL pcm0: Pin config: 0x411111f0 pcm0: Pin control: 0x00000040 OUT pcm0: connections: 1 pcm0: | pcm0: + <- nid=23 [audio mixer] pcm0: pcm0: nid: 33 [ANALOG] pcm0: name: vendor widget pcm0: widget_cap: 0x00f00000 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: connections: 0 pcm0: pcm0: nid: 34 [ANALOG] pcm0: name: vendor widget pcm0: widget_cap: 0x00f00000 pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000000 pcm0: connections: 0 pcm0: pcm0: nid: 35 [ANALOG] pcm0: name: beep widget pcm0: widget_cap: 0x0070000c pcm0: Parse flags: 0x00000000 pcm0: Ctl flags: 0x00000021 pcm0: Output amp: 0x800b0f0f pcm0: mute=1 step=15 size=11 offset=15 pcm0: connections: 0 pcm0: pcm0: +------------------------+ pcm0: | DUMPING HDA AMPLIFIERS | pcm0: +------------------------+ pcm0: pcm0: 1: nid=3 dir=0x1 index=0 ossmask=0x00000011 ossdev=4 pcm0: 2: nid=4 dir=0x1 index=0 ossmask=0x00000011 ossdev=4 pcm0: 3: nid=5 dir=0x1 index=0 ossmask=0x00000000 ossdev=0 pcm0: 4: nid=6 dir=0x1 index=0 ossmask=0x00000011 ossdev=4 pcm0: 5: nid=7 dir=0x1 index=0 ossmask=0x00000000 ossdev=0 [DISABLED] pcm0: 6: nid=8 dir=0x2 index=0 ossmask=0x00000800 ossdev=0 pcm0: 7: nid=20 cnid=13 dir=0x2 index=0 ossmask=0x00000081 ossdev=7 pcm0: 8: nid=20 cnid=16 dir=0x2 index=1 ossmask=0x00000081 ossdev=7 pcm0: 9: nid=21 dir=0x1 index=0 ossmask=0x00000000 ossdev=0 pcm0: 10: nid=21 cnid=17 dir=0x2 index=0 ossmask=0x00000101 ossdev=8 pcm0: 11: nid=21 cnid=20 dir=0x2 index=1 ossmask=0x00000000 ossdev=0 pcm0: 12: nid=21 cnid=28 dir=0x2 index=2 ossmask=0x00000000 ossdev=0 pcm0: 13: nid=22 cnid=3 dir=0x2 index=0 ossmask=0x00000000 ossdev=0 pcm0: 14: nid=22 cnid=21 dir=0x2 index=1 ossmask=0x00000000 ossdev=0 pcm0: 15: nid=23 cnid=4 dir=0x2 index=0 ossmask=0x00000000 ossdev=0 pcm0: 16: nid=23 cnid=21 dir=0x2 index=1 ossmask=0x00000000 ossdev=0 pcm0: 17: nid=24 cnid=5 dir=0x2 index=0 ossmask=0x00000000 ossdev=0 pcm0: 18: nid=24 cnid=21 dir=0x2 index=1 ossmask=0x00000000 ossdev=0 pcm0: 19: nid=25 cnid=6 dir=0x2 index=0 ossmask=0x00000000 ossdev=0 pcm0: 20: nid=25 cnid=21 dir=0x2 index=1 ossmask=0x00000000 ossdev=0 pcm0: 21: nid=26 cnid=4 dir=0x2 index=0 ossmask=0x00000000 ossdev=0 pcm0: 22: nid=26 cnid=6 dir=0x2 index=1 ossmask=0x00000000 ossdev=0 pcm0: 23: nid=26 cnid=21 dir=0x2 index=2 ossmask=0x00000000 ossdev=0 pcm0: 24: nid=26 cnid=3 dir=0x2 index=3 ossmask=0x00000000 ossdev=0 pcm0: 25: nid=27 cnid=4 dir=0x2 index=0 ossmask=0x00000000 ossdev=0 pcm0: 26: nid=27 cnid=6 dir=0x2 index=1 ossmask=0x00000000 ossdev=0 pcm0: 27: nid=27 cnid=21 dir=0x2 index=2 ossmask=0x00000000 ossdev=0 pcm0: 28: nid=27 cnid=3 dir=0x2 index=3 ossmask=0x00000000 ossdev=0 pcm0: 29: nid=28 cnid=12 dir=0x2 index=0 ossmask=0x00000041 ossdev=6 pcm0: 30: nid=28 cnid=15 dir=0x2 index=1 ossmask=0x00000000 ossdev=0 pcm0: 31: nid=35 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: 3 index: 0 mute: 1 step: 0 size: 0 off: 0 dir=0x1 ossmask=0x00000011 pcm0: | pcm0: +- nid: 4 index: 0 mute: 1 step: 0 size: 0 off: 0 dir=0x1 ossmask=0x00000011 pcm0: | pcm0: +- nid: 6 index: 0 mute: 1 step: 0 size: 0 off: 0 dir=0x1 ossmask=0x00000011 pcm0: | pcm0: +- nid: 20 index: 0 (nid: 13) mute: 1 step: 0 size: 0 off: 0 dir=0x2 ossmask=0x00000081 pcm0: | pcm0: +- nid: 20 index: 1 (nid: 16) mute: 1 step: 0 size: 0 off: 0 dir=0x2 ossmask=0x00000081 pcm0: | pcm0: +- nid: 21 index: 0 (nid: 17) mute: 1 step: 23 size: 11 off: 12 dir=0x2 ossmask=0x00000101 pcm0: | pcm0: +- nid: 28 index: 0 (nid: 12) mute: 1 step: 0 size: 0 off: 0 dir=0x2 ossmask=0x00000041 pcm0: | pcm0: +- nid: 35 index: 0 mute: 1 step: 15 size: 11 off: 15 dir=0x1 ossmask=0x00000021 pcm0: pcm0: PCM Volume (OSS: pcm) pcm0: | pcm0: +- nid: 3 index: 0 mute: 1 step: 0 size: 0 off: 0 dir=0x1 ossmask=0x00000011 pcm0: | pcm0: +- nid: 4 index: 0 mute: 1 step: 0 size: 0 off: 0 dir=0x1 ossmask=0x00000011 pcm0: | pcm0: +- nid: 6 index: 0 mute: 1 step: 0 size: 0 off: 0 dir=0x1 ossmask=0x00000011 pcm0: pcm0: CD Volume (OSS: cd) pcm0: | pcm0: +- nid: 21 index: 0 (nid: 17) mute: 1 step: 23 size: 11 off: 12 dir=0x2 ossmask=0x00000101 pcm0: pcm0: Microphone Volume (OSS: mic) pcm0: | pcm0: +- nid: 20 index: 0 (nid: 13) mute: 1 step: 0 size: 0 off: 0 dir=0x2 ossmask=0x00000081 pcm0: | pcm0: +- nid: 20 index: 1 (nid: 16) mute: 1 step: 0 size: 0 off: 0 dir=0x2 ossmask=0x00000081 pcm0: pcm0: Line-in Volume (OSS: line) pcm0: | pcm0: +- nid: 28 index: 0 (nid: 12) mute: 1 step: 0 size: 0 off: 0 dir=0x2 ossmask=0x00000041 pcm0: pcm0: Recording Level (OSS: rec) pcm0: | pcm0: +- nid: 8 index: 0 mute: 1 step: 13 size: 11 off: 2 dir=0x2 ossmask=0x00000800 pcm0: pcm0: Speaker/Beep (OSS: speaker) pcm0: | pcm0: +- nid: 35 index: 0 mute: 1 step: 15 size: 11 off: 15 dir=0x1 ossmask=0x00000021 pcm0: pcm0: Playback path: pcm0: pcm0: nid=11 [pin: line out (jack)] pcm0: ^ pcm0: | pcm0: +-----<------+ pcm0: ^ pcm0: | pcm0: nid=22 [audio mixer] pcm0: ^ pcm0: | pcm0: nid=3 [audio output] pcm0: pcm0: nid=15 [pin: headphones out (jack)] pcm0: ^ pcm0: | pcm0: +-----<------+ pcm0: ^ pcm0: | pcm0: nid=26 [audio mixer] pcm0: ^ pcm0: | pcm0: nid=4 [audio output] pcm0: pcm0: Recording sources: pcm0: pcm0: nid=8 [audio input] pcm0: | pcm0: + <- nid=13 [pin: Mic in (jack)] [recsrc: vol, mic] pcm0: | pcm0: + <- nid=12 [pin: line in (jack)] [recsrc: vol, line] pcm0: | pcm0: + <- nid=15 [pin: headphones out (jack)] pcm0: | pcm0: + <- nid=16 [pin: Mic in (jack)] [recsrc: vol, mic] pcm0: | pcm0: + <- nid=17 [pin: CD (fixed)] [recsrc: vol, cd] pcm0: | pcm0: + <- nid=21 [audio mixer] [recsrc: vol, line, mic, cd] pcm0: pcm0: +--------------------------------------+ pcm0: | DUMPING PCM Playback/Record Channels | pcm0: +--------------------------------------+ pcm0: pcm0: PCM Playback: 1 pcm0: Stream cap: 0x00000001 pcm0: Format: PCM pcm0: PCM cap: 0x000e0140 pcm0: PCM size: 16 20 24 pcm0: PCM rate: 48 96 pcm0: DAC: 3 4 6 pcm0: pcm0: PCM Record: 1 pcm0: Stream cap: 0x00000001 pcm0: Format: PCM pcm0: PCM cap: 0x00020140 pcm0: PCM size: 16 pcm0: PCM rate: 48 96 pcm0: ADC: 8