NetBSD Problem Report #42028

From wiz@yt.nih.at  Tue Sep  8 23:03:06 2009
Return-Path: <wiz@yt.nih.at>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id 62CF063BC1D
	for <gnats-bugs@gnats.NetBSD.org>; Tue,  8 Sep 2009 23:03:06 +0000 (UTC)
Message-Id: <20090908230302.1AC5C39FA02@yt.nih.at>
Date: Wed,  9 Sep 2009 01:03:02 +0200 (CEST)
From: Thomas Klausner <wiz@NetBSD.org>
Reply-To: Thomas Klausner <wiz@NetBSD.org>
To: gnats-bugs@gnats.NetBSD.org
Subject: hdaudio: mplayer can't change volume
X-Send-Pr-Version: 3.95

>Number:         42028
>Category:       kern
>Synopsis:       hdaudio: mplayer can't change volume
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Sep 08 23:05:00 +0000 2009
>Closed-Date:    
>Last-Modified:  Tue May 05 19:24:59 +0000 2015
>Originator:     Thomas Klausner
>Release:        NetBSD 5.99.16
>Organization:
Curiosity is the very basis of education and if you tell me that 
curiosity killed the cat, I say only that the cat died nobly.
- Arnold Edinborough
>Environment:


System: NetBSD yt 5.99.16 NetBSD 5.99.16 (YT) #4: Wed Sep 9 00:15:46 CEST 2009 root@yt:/usr/src/sys/arch/amd64/compile/obj/YT amd64
Architecture: x86_64
Machine: amd64
>Description:
mplayer cannot change the volume of the audio device on my hdaudio.
With azalia on the same hardware it used a software filter; now it thinks
it can influence the hardware, but it doesn't work.

Also, trying to change the volume with mixerctl doesn't change anything.

dmesg -x | grep hd:

hdaudio0 at pci0 dev 27 function 0: HD Audio Controller
hdaudio0: interrupting at ioapic0 pin 22
hdafg0 at hdaudio0 vendor 0x11D4 product 0x989B nid 0x01 (firmware configuration)
hdafg0: add connection 07->1C
hdafg0: add connection 08->0C
hdafg0: add connection 09->0D
hdafg0: add connection 0C->38
hdafg0: add connection 0C->39
hdafg0: add connection 0C->3A
hdafg0: add connection 0C->3B
hdafg0: add connection 0C->3C
hdafg0: add connection 0C->18
hdafg0: add connection 0C->24
hdafg0: add connection 0C->25
hdafg0: add connection 0C->3D
hdafg0: add connection 0C->20
hdafg0: add connection 0C->1F
hdafg0: add connection 0D->38
hdafg0: add connection 0D->39
hdafg0: add connection 0D->3A
hdafg0: add connection 0D->3B
hdafg0: add connection 0D->3C
hdafg0: add connection 0D->18
hdafg0: add connection 0D->24
hdafg0: add connection 0D->25
hdafg0: add connection 0D->3D
hdafg0: add connection 0D->20
hdafg0: add connection 0E->38
hdafg0: add connection 0E->39
hdafg0: add connection 0E->3A
hdafg0: add connection 0E->3B
hdafg0: add connection 0E->3C
hdafg0: add connection 0E->18
hdafg0: add connection 0E->24
hdafg0: add connection 0E->25
hdafg0: add connection 0E->3D
hdafg0: add connection 0E->20
hdafg0: add connection 0F->0E
hdafg0: add connection 11->22
hdafg0: add connection 12->29
hdafg0: add connection 13->2D
hdafg0: add connection 14->2B
hdafg0: add connection 15->2C
hdafg0: add connection 16->2A
hdafg0: add connection 17->26
hdafg0: add connection 19->20
hdafg0: add connection 19->21
hdafg0: add connection 1B->02
hdafg0: add connection 1D->0B
hdafg0: add connection 1E->36
hdafg0: add connection 1E->21
hdafg0: add connection 20->39
hdafg0: add connection 20->33
hdafg0: add connection 20->38
hdafg0: add connection 20->3D
hdafg0: add connection 20->34
hdafg0: add connection 20->3B
hdafg0: add connection 20->18
hdafg0: add connection 20->1A
hdafg0: add connection 21->20
hdafg0: add connection 22->37
hdafg0: add connection 22->21
hdafg0: add connection 23->11
hdafg0: add connection 23->12
hdafg0: add connection 23->13
hdafg0: add connection 23->14
hdafg0: add connection 23->15
hdafg0: add connection 23->16
hdafg0: add connection 23->17
hdafg0: add connection 23->18
hdafg0: add connection 23->24
hdafg0: add connection 23->25
hdafg0: add connection 23->38
hdafg0: add connection 23->39
hdafg0: add connection 23->3A
hdafg0: add connection 23->3B
hdafg0: add connection 23->3C
hdafg0: add connection 23->3D
hdafg0: add connection 23->20
hdafg0: add connection 23->21
hdafg0: add connection 24->27
hdafg0: add connection 25->28
hdafg0: add connection 26->32
hdafg0: add connection 26->21
hdafg0: add connection 27->05
hdafg0: add connection 27->21
hdafg0: add connection 28->0A
hdafg0: add connection 28->21
hdafg0: add connection 29->04
hdafg0: add connection 29->21
hdafg0: add connection 2A->06
hdafg0: add connection 2A->21
hdafg0: add connection 2B->30
hdafg0: add connection 2B->21
hdafg0: add connection 2C->31
hdafg0: add connection 2C->21
hdafg0: add connection 2D->1E
hdafg0: add connection 2F->11
hdafg0: add connection 2F->12
hdafg0: add connection 2F->14
hdafg0: add connection 2F->15
hdafg0: add connection 2F->16
hdafg0: add connection 2F->17
hdafg0: add connection 30->03
hdafg0: add connection 30->04
hdafg0: add connection 30->06
hdafg0: add connection 31->04
hdafg0: add connection 31->0A
hdafg0: add connection 32->05
hdafg0: add connection 32->04
hdafg0: add connection 33->3A
hdafg0: add connection 33->25
hdafg0: add connection 33->24
hdafg0: add connection 34->3C
hdafg0: add connection 34->25
hdafg0: add connection 34->24
hdafg0: add connection 36->03
hdafg0: add connection 36->04
hdafg0: add connection 36->06
hdafg0: add connection 37->03
hdafg0: add connection 37->04
hdafg0: add connection 37->06
hdafg0: add connection 38->11
hdafg0: add connection 39->14
hdafg0: add connection 3A->15
hdafg0: add connection 3C->17
hdafg0: add connection 3D->12
hdafg0: add ctrl outamp 0:03:FF
hdafg0: add ctrl outamp 1:04:FF
hdafg0: add ctrl outamp 2:05:FF
hdafg0: add ctrl outamp 3:06:FF
hdafg0: add ctrl outamp 4:0A:FF
hdafg0: add ctrl outamp 5:0C:FF
hdafg0: add ctrl outamp 6:0D:FF
hdafg0: add ctrl outamp 7:0E:FF
hdafg0: add ctrl outamp 8:10:FF
hdafg0: add ctrl outamp 9:11:FF
hdafg0: add ctrl outamp 10:12:FF
hdafg0: add ctrl outamp 11:13:FF
hdafg0: add ctrl outamp 12:14:FF
hdafg0: add ctrl outamp 13:15:FF
hdafg0: add ctrl outamp 14:16:FF
hdafg0: add ctrl outamp 15:17:FF
hdafg0: add ctrl outamp 16:1B:FF
hdafg0: add ctrl inamp 17:1C:FF
hdafg0: add ctrl outamp 18:1D:FF
hdafg0: add ctrl inamp selmix 19:1E:36
hdafg0: add ctrl inamp selmix 20:1E:21
hdafg0: add ctrl inamp selmix 21:20:39
hdafg0: add ctrl inamp selmix 22:20:33
hdafg0: add ctrl inamp selmix 23:20:38
hdafg0: add ctrl inamp selmix 24:20:3D
hdafg0: add ctrl inamp selmix 25:20:34
hdafg0: add ctrl inamp selmix 26:20:3B
hdafg0: add ctrl inamp selmix 27:20:18
hdafg0: add ctrl inamp selmix 28:20:1A
hdafg0: add ctrl outamp 29:21:FF
hdafg0: add ctrl inamp selmix 30:22:37
hdafg0: add ctrl inamp selmix 31:22:21
hdafg0: add ctrl outamp 32:24:FF
hdafg0: add ctrl outamp 33:25:FF
hdafg0: add ctrl inamp selmix 34:26:32
hdafg0: add ctrl inamp selmix 35:26:21
hdafg0: add ctrl inamp selmix 36:27:05
hdafg0: add ctrl inamp selmix 37:27:21
hdafg0: add ctrl inamp selmix 38:28:0A
hdafg0: add ctrl inamp selmix 39:28:21
hdafg0: add ctrl inamp selmix 40:29:04
hdafg0: add ctrl inamp selmix 41:29:21
hdafg0: add ctrl inamp selmix 42:2A:06
hdafg0: add ctrl inamp selmix 43:2A:21
hdafg0: add ctrl inamp selmix 44:2B:30
hdafg0: add ctrl inamp selmix 45:2B:21
hdafg0: add ctrl inamp selmix 46:2C:31
hdafg0: add ctrl inamp selmix 47:2C:21
hdafg0: add ctrl outamp 48:38:FF
hdafg0: add ctrl outamp 49:39:FF
hdafg0: add ctrl outamp 50:3A:FF
hdafg0: add ctrl outamp 51:3C:FF
hdafg0: add ctrl outamp 52:3D:FF
hdafg0: disable 19 [nonaudio]
hdafg0: disable 13 [no connectivity]
hdafg0: disable 1C [no connectivity]
hdafg0: disable ctl 11:13:FF [widget disabled]
hdafg0: disable ctl 17:1C:FF [widget disabled]
hdafg0: disable conn 07->1C [disabled child]
hdafg0: disable conn 23->13 [disabled child]
hdafg0: disable 2D [consumers disabled]
hdafg0: disable 1E [consumers disabled]
hdafg0: disable 36 [consumers disabled]
hdafg0: disable ctl 19:1E:36 [widget disabled]
hdafg0: disable ctl 20:1E:21 [widget disabled]
hdafg0: depth 3 nid 04 dupseq -1 returned 04
hdafg0: depth 6 nid 14 dupseq -1 returned 00
hdafg0: depth 5 nid 39 dupseq -1 returned 00
hdafg0: depth 7 nid 15 dupseq -1 returned 00
hdafg0: depth 6 nid 3A dupseq -1 returned 00
hdafg0: depth 6 nid 25 dupseq -1 returned 00
hdafg0: depth 6 nid 24 dupseq -1 returned 00
hdafg0: depth 5 nid 33 dupseq -1 returned 00
hdafg0: depth 6 nid 11 dupseq -1 returned 00
hdafg0: depth 5 nid 38 dupseq -1 returned 00
hdafg0: depth 6 nid 12 dupseq -1 returned 00
hdafg0: depth 5 nid 3D dupseq -1 returned 00
hdafg0: depth 7 nid 17 dupseq -1 returned 00
hdafg0: depth 6 nid 3C dupseq -1 returned 00
hdafg0: depth 6 nid 25 dupseq -1 returned 00
hdafg0: depth 6 nid 24 dupseq -1 returned 00
hdafg0: depth 5 nid 34 dupseq -1 returned 00
hdafg0: depth 5 nid 3B dupseq -1 returned 00
hdafg0: depth 5 nid 18 dupseq -1 returned 00
hdafg0: depth 5 nid 1A dupseq -1 returned 00
hdafg0: depth 4 nid 20 dupseq -1 returned 00
hdafg0: depth 3 nid 21 dupseq -1 returned 00
hdafg0: depth 2 nid 29 dupseq -1 returned 04
hdafg0: depth 1 nid 12 dupseq -1 returned 04
hdafg0: depth 3 nid 05 dupseq -1 returned 05
hdafg0: depth 6 nid 14 dupseq -1 returned 00
hdafg0: depth 5 nid 39 dupseq -1 returned 00
hdafg0: depth 7 nid 15 dupseq -1 returned 00
hdafg0: depth 6 nid 3A dupseq -1 returned 00
hdafg0: depth 6 nid 25 dupseq -1 returned 00
hdafg0: depth 6 nid 24 dupseq -1 returned 00
hdafg0: depth 5 nid 33 dupseq -1 returned 00
hdafg0: depth 6 nid 11 dupseq -1 returned 00
hdafg0: depth 5 nid 38 dupseq -1 returned 00
hdafg0: depth 6 nid 12 busy by seqmask 0
hdafg0: depth 5 nid 3D dupseq -1 returned 00
hdafg0: depth 7 nid 17 dupseq -1 returned 00
hdafg0: depth 6 nid 3C dupseq -1 returned 00
hdafg0: depth 6 nid 25 dupseq -1 returned 00
hdafg0: depth 6 nid 24 dupseq -1 returned 00
hdafg0: depth 5 nid 34 dupseq -1 returned 00
hdafg0: depth 5 nid 3B dupseq -1 returned 00
hdafg0: depth 5 nid 18 dupseq -1 returned 00
hdafg0: depth 5 nid 1A dupseq -1 returned 00
hdafg0: depth 4 nid 20 dupseq -1 returned 00
hdafg0: depth 3 nid 21 dupseq -1 returned 00
hdafg0: depth 2 nid 27 dupseq -1 returned 05
hdafg0: depth 1 nid 24 dupseq -1 returned 05
hdafg0: depth 3 nid 06 dupseq -1 returned 06
hdafg0: depth 6 nid 14 dupseq -1 returned 00
hdafg0: depth 5 nid 39 dupseq -1 returned 00
hdafg0: depth 7 nid 15 dupseq -1 returned 00
hdafg0: depth 6 nid 3A dupseq -1 returned 00
hdafg0: depth 6 nid 25 dupseq -1 returned 00
hdafg0: depth 6 nid 24 busy by seqmask 0
hdafg0: depth 5 nid 33 dupseq -1 returned 00
hdafg0: depth 6 nid 11 dupseq -1 returned 00
hdafg0: depth 5 nid 38 dupseq -1 returned 00
hdafg0: depth 6 nid 12 busy by seqmask 0
hdafg0: depth 5 nid 3D dupseq -1 returned 00
hdafg0: depth 7 nid 17 dupseq -1 returned 00
hdafg0: depth 6 nid 3C dupseq -1 returned 00
hdafg0: depth 6 nid 25 dupseq -1 returned 00
hdafg0: depth 6 nid 24 busy by seqmask 0
hdafg0: depth 5 nid 34 dupseq -1 returned 00
hdafg0: depth 5 nid 3B dupseq -1 returned 00
hdafg0: depth 5 nid 18 dupseq -1 returned 00
hdafg0: depth 5 nid 1A dupseq -1 returned 00
hdafg0: depth 4 nid 20 dupseq -1 returned 00
hdafg0: depth 3 nid 21 dupseq -1 returned 00
hdafg0: depth 2 nid 2A dupseq -1 returned 06
hdafg0: depth 1 nid 16 dupseq -1 returned 06
hdafg0: depth 3 nid 0A dupseq -1 returned 0A
hdafg0: depth 6 nid 14 dupseq -1 returned 00
hdafg0: depth 5 nid 39 dupseq -1 returned 00
hdafg0: depth 7 nid 15 dupseq -1 returned 00
hdafg0: depth 6 nid 3A dupseq -1 returned 00
hdafg0: depth 6 nid 25 dupseq -1 returned 00
hdafg0: depth 6 nid 24 busy by seqmask 0
hdafg0: depth 5 nid 33 dupseq -1 returned 00
hdafg0: depth 6 nid 11 dupseq -1 returned 00
hdafg0: depth 5 nid 38 dupseq -1 returned 00
hdafg0: depth 6 nid 12 busy by seqmask 0
hdafg0: depth 5 nid 3D dupseq -1 returned 00
hdafg0: depth 7 nid 17 dupseq -1 returned 00
hdafg0: depth 6 nid 3C dupseq -1 returned 00
hdafg0: depth 6 nid 25 dupseq -1 returned 00
hdafg0: depth 6 nid 24 busy by seqmask 0
hdafg0: depth 5 nid 34 dupseq -1 returned 00
hdafg0: depth 5 nid 3B dupseq -1 returned 00
hdafg0: depth 5 nid 18 dupseq -1 returned 00
hdafg0: depth 5 nid 1A dupseq -1 returned 00
hdafg0: depth 4 nid 20 dupseq -1 returned 00
hdafg0: depth 3 nid 21 dupseq -1 returned 00
hdafg0: depth 2 nid 28 dupseq -1 returned 0A
hdafg0: depth 1 nid 25 dupseq -1 returned 0A
hdafg0: depth 4 nid 03 dupseq -1 returned 03
hdafg0: depth 4 nid 04 busy by assoc 0
hdafg0: depth 4 nid 06 busy by assoc 0
hdafg0: depth 3 nid 37 dupseq -1 returned 03
hdafg0: depth 6 nid 14 dupseq -1 returned 00
hdafg0: depth 5 nid 39 dupseq -1 returned 00
hdafg0: depth 7 nid 15 dupseq -1 returned 00
hdafg0: depth 6 nid 3A dupseq -1 returned 00
hdafg0: depth 6 nid 25 busy by assoc 0
hdafg0: depth 6 nid 24 busy by assoc 0
hdafg0: depth 5 nid 33 dupseq -1 returned 00
hdafg0: depth 6 nid 11 dupseq -1 returned 00
hdafg0: depth 5 nid 38 dupseq -1 returned 00
hdafg0: depth 6 nid 12 busy by assoc 0
hdafg0: depth 5 nid 3D dupseq -1 returned 00
hdafg0: depth 7 nid 17 dupseq -1 returned 00
hdafg0: depth 6 nid 3C dupseq -1 returned 00
hdafg0: depth 6 nid 25 busy by assoc 0
hdafg0: depth 6 nid 24 busy by assoc 0
hdafg0: depth 5 nid 34 dupseq -1 returned 00
hdafg0: depth 5 nid 3B dupseq -1 returned 00
hdafg0: depth 5 nid 18 dupseq -1 returned 00
hdafg0: depth 5 nid 1A dupseq -1 returned 00
hdafg0: depth 4 nid 20 dupseq -1 returned 00
hdafg0: depth 3 nid 21 dupseq -1 returned 00
hdafg0: depth 2 nid 22 dupseq -1 returned 03
hdafg0: depth 1 nid 11 dupseq -1 returned 03
hdafg0: depth 2 nid 02 dupseq -1 returned 02
hdafg0: depth 1 nid 1B dupseq -1 returned 02
hdafg0: depth 2 nid 0B dupseq -1 returned 0B
hdafg0: depth 1 nid 1D dupseq -1 returned 0B
hdafg0: disable 07 [unassociated]
hdafg0: disable 09 [unassociated]
hdafg0: disable 0D [unassociated]
hdafg0: disable 0E [unassociated]
hdafg0: disable 0F [unassociated]
hdafg0: disable 1F [unassociated]
hdafg0: disable 21 [unassociated]
hdafg0: disable 23 [unassociated]
hdafg0: disable 26 [unassociated]
hdafg0: disable 2B [unassociated]
hdafg0: disable 2C [unassociated]
hdafg0: disable 2E [unassociated]
hdafg0: disable 2F [unassociated]
hdafg0: disable 30 [unassociated]
hdafg0: disable 31 [unassociated]
hdafg0: disable 32 [unassociated]
hdafg0: disable 35 [unassociated]
hdafg0: disable 38 [unassociated]
hdafg0: disable 3B [unassociated]
hdafg0: disable 3D [unassociated]
hdafg0: disable 14 input connections
hdafg0: disable 15 input connections
hdafg0: disable 17 input connections
hdafg0: disable 18 input connections
hdafg0: disable 0C -> 24 output connection
hdafg0: disable 33 -> 24 output connection
hdafg0: disable 34 -> 24 output connection
hdafg0: disable 0C -> 25 output connection
hdafg0: disable 33 -> 25 output connection
hdafg0: disable 34 -> 25 output connection
hdafg0: disable 37->04 [unselected]
hdafg0: disable 37->06 [unselected]
hdafg0: disable ctl 6:0D:FF [widget disabled]
hdafg0: disable ctl 7:0E:FF [widget disabled]
hdafg0: disable ctl 23:20:38 [widget disabled]
hdafg0: disable ctl 24:20:3D [widget disabled]
hdafg0: disable ctl 26:20:3B [widget disabled]
hdafg0: disable ctl 29:21:FF [widget disabled]
hdafg0: disable ctl 31:22:21 [widget disabled]
hdafg0: disable ctl 34:26:32 [widget disabled]
hdafg0: disable ctl 35:26:21 [widget disabled]
hdafg0: disable ctl 37:27:21 [widget disabled]
hdafg0: disable ctl 39:28:21 [widget disabled]
hdafg0: disable ctl 41:29:21 [widget disabled]
hdafg0: disable ctl 43:2A:21 [widget disabled]
hdafg0: disable ctl 44:2B:30 [widget disabled]
hdafg0: disable ctl 45:2B:21 [widget disabled]
hdafg0: disable ctl 46:2C:31 [widget disabled]
hdafg0: disable ctl 47:2C:21 [widget disabled]
hdafg0: disable ctl 48:38:FF [widget disabled]
hdafg0: disable ctl 52:3D:FF [widget disabled]
hdafg0: disable conn 0C->38 [disabled child]
hdafg0: disable conn 0C->3B [disabled child]
hdafg0: disable conn 0C->3D [disabled child]
hdafg0: disable conn 0C->1F [disabled child]
hdafg0: found 3 GPIOs
hdafg0: jack detect not enabled
hdafg0:   need 13 mixers (3 classes)
hdafg0:   adding outputs.master
hdafg0:   adding inputs.dac
hdafg0:   adding inputs.beep
hdafg0:   adding inputs.line
hdafg0:   adding record.mic
hdafg0:   adding inputs.cd
hdafg0:   adding inputs.reclvl
hdafg0:   adding record.monitor
hdafg0: DAC0:04, Analog Speaker: Jack (Green, 12)
hdafg0: DAC0:05, Analog Speaker: Jack (Orange, 24)
hdafg0: DAC0:06, Analog Speaker: Jack (Black, 16)
hdafg0: DAC0:0A, Analog Speaker: Jack (Grey, 25)
hdafg0: ADC1:08, Analog Mic In: Jack (Pink, 17)
hdafg0: ADC1:08, Analog Line In: Jack (Blue, 15)
hdafg0: ADC1:08, Analog CD: Fixed Function (Black, 18)
hdafg0: ADC1:08, Analog Mic In: Jack (Pink, 14)
hdafg0: DAC2:03, Analog HP Out: Jack (Green, 11)
hdafg0: DAC3:02, Digital SPDIF Out: Jack (Other, 1B)
hdafg0: DAC4:0B, Digital Digital Other Out: Jack (Other, 1D)
hdafg0: 8ch/2ch 8000Hz-192000Hz 16/16 20/32 24/32
audio0 at hdafg0: full duplex, independent

mixerctl -a:
outputs.master=234,234
inputs.dac=234,234
inputs.beep=255,255
inputs.line=184,184
record.mic=184,184
inputs.cd=184,184
inputs.reclvl=156,156
record.monitor=184,184
outputs.dacsel=DAC00,DAC02,DAC03,DAC04
record.source=ADC01

Values are changeable, but setting them all to zero doesn't reduce
volume of running mplayer.

After creating /dev/hdaudio0 with mknod manually, using major from sysctl
and 0 for minor (mknod /dev/hdaudio0 c 195 0),
hdaudiocfg info:
./hdaudiocfg -f /dev/hdaudio0 info
codec 00 nid 0x01 vendor 0x11D4 product 0x989B subsystem 0x82EA1043 device hdafg0
./hdaudiocfg -f /dev/hdaudio0 get 00 01 > hdaudiocfg.dump

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>config</key>
		<integer>0x2214030</integer>
		<key>nid</key>
		<integer>17</integer>
	</dict>
	<dict>
		<key>config</key>
		<integer>0x1014010</integer>
		<key>nid</key>
		<integer>18</integer>
	</dict>
	<dict>
		<key>config</key>
		<integer>0x511711f0</integer>
		<key>nid</key>
		<integer>19</integer>
	</dict>
	<dict>
		<key>config</key>
		<integer>0x2a1902e</integer>
		<key>nid</key>
		<integer>20</integer>
	</dict>
	<dict>
		<key>config</key>
		<integer>0x1813021</integer>
		<key>nid</key>
		<integer>21</integer>
	</dict>
	<dict>
		<key>config</key>
		<integer>0x1011012</integer>
		<key>nid</key>
		<integer>22</integer>
	</dict>
	<dict>
		<key>config</key>
		<integer>0x1a19020</integer>
		<key>nid</key>
		<integer>23</integer>
	</dict>
	<dict>
		<key>config</key>
		<integer>0x99331122</integer>
		<key>nid</key>
		<integer>24</integer>
	</dict>
	<dict>
		<key>config</key>
		<integer>0x511711f0</integer>
		<key>nid</key>
		<integer>26</integer>
	</dict>
	<dict>
		<key>config</key>
		<integer>0x145f1a0</integer>
		<key>nid</key>
		<integer>27</integer>
	</dict>
	<dict>
		<key>config</key>
		<integer>0x41c5f160</integer>
		<key>nid</key>
		<integer>28</integer>
	</dict>
	<dict>
		<key>config</key>
		<integer>0x1856f1b0</integer>
		<key>nid</key>
		<integer>29</integer>
	</dict>
	<dict>
		<key>config</key>
		<integer>0x1016011</integer>
		<key>nid</key>
		<integer>36</integer>
	</dict>
	<dict>
		<key>config</key>
		<integer>0x1012014</integer>
		<key>nid</key>
		<integer>37</integer>
	</dict>
</array>
</plist>

hdaudioctl:

digraph "HD Audio" {
 widget02h [shape=box,style=filled,fillcolor="#88ff88"];
 widget03h [shape=box,style=filled,fillcolor="#88ff88"];
 widget04h [shape=box,style=filled,fillcolor="#88ff88"];
 widget05h [shape=box,style=filled,fillcolor="#88ff88"];
 widget06h [shape=box,style=filled,fillcolor="#88ff88"];
 widget07h [shape=box,style=filled,fillcolor="#ff8888"];
 widget1Ch -> widget07h [sametail=widget1Ch];
 widget08h [shape=box,style=filled,fillcolor="#ff8888"];
 widget0Ch -> widget08h [sametail=widget0Ch];
 widget09h [shape=box,style=filled,fillcolor="#ff8888"];
 widget0Dh -> widget09h [sametail=widget0Dh];
 widget0Ah [shape=box,style=filled,fillcolor="#88ff88"];
 widget0Bh [shape=box,style=filled,fillcolor="#88ff88"];
 widget0Ch [shape=invtrapezium];
 widget38h -> widget0Ch [sametail=widget38h];
 widget39h -> widget0Ch [sametail=widget39h];
 widget3Ah -> widget0Ch [sametail=widget3Ah];
 widget3Bh -> widget0Ch [sametail=widget3Bh];
 widget3Ch -> widget0Ch [sametail=widget3Ch];
 widget18h -> widget0Ch [sametail=widget18h];
 widget24h -> widget0Ch [sametail=widget24h];
 widget25h -> widget0Ch [sametail=widget25h];
 widget3Dh -> widget0Ch [sametail=widget3Dh];
 widget20h -> widget0Ch [sametail=widget20h];
 widget1Fh -> widget0Ch [sametail=widget1Fh];
 widget0Dh [shape=invtrapezium];
 widget38h -> widget0Dh [sametail=widget38h];
 widget39h -> widget0Dh [sametail=widget39h];
 widget3Ah -> widget0Dh [sametail=widget3Ah];
 widget3Bh -> widget0Dh [sametail=widget3Bh];
 widget3Ch -> widget0Dh [sametail=widget3Ch];
 widget18h -> widget0Dh [sametail=widget18h];
 widget24h -> widget0Dh [sametail=widget24h];
 widget25h -> widget0Dh [sametail=widget25h];
 widget3Dh -> widget0Dh [sametail=widget3Dh];
 widget20h -> widget0Dh [sametail=widget20h];
 widget0Eh [shape=invtrapezium];
 widget38h -> widget0Eh [sametail=widget38h];
 widget39h -> widget0Eh [sametail=widget39h];
 widget3Ah -> widget0Eh [sametail=widget3Ah];
 widget3Bh -> widget0Eh [sametail=widget3Bh];
 widget3Ch -> widget0Eh [sametail=widget3Ch];
 widget18h -> widget0Eh [sametail=widget18h];
 widget24h -> widget0Eh [sametail=widget24h];
 widget25h -> widget0Eh [sametail=widget25h];
 widget3Dh -> widget0Eh [sametail=widget3Dh];
 widget20h -> widget0Eh [sametail=widget20h];
 widget0Fh [shape=box,style=filled,fillcolor="#ff8888"];
 widget0Eh -> widget0Fh [sametail=widget0Eh];
 widget11h [label="widget11h\ndevice=HP Out",style=filled,shape=doublecircle,fillcolor="#ffff88"];
 widget22h -> widget11h [sametail=widget22h];
 widget12h [label="widget12h\ndevice=Line Out",style=filled,shape=doublecircle,fillcolor="#ffff88"];
 widget29h -> widget12h [sametail=widget29h];
 widget13h [label="widget13h\ndevice=Speaker",style=filled,shape=circle,fillcolor="#88ff88"];
 widget2Dh -> widget13h [sametail=widget2Dh];
 widget14h [label="widget14h\ndevice=Mic In",style=filled,shape=doublecircle,fillcolor="#ffff88"];
 widget2Bh -> widget14h [sametail=widget2Bh];
 widget15h [label="widget15h\ndevice=Line In",style=filled,shape=doublecircle,fillcolor="#ffff88"];
 widget2Ch -> widget15h [sametail=widget2Ch];
 widget16h [label="widget16h\ndevice=Line Out",style=filled,shape=doublecircle,fillcolor="#ffff88"];
 widget2Ah -> widget16h [sametail=widget2Ah];
 widget17h [label="widget17h\ndevice=Mic In",style=filled,shape=doublecircle,fillcolor="#ffff88"];
 widget26h -> widget17h [sametail=widget26h];
 widget18h [label="widget18h\ndevice=CD",style=filled,shape=circle,fillcolor="#ff8888"];
 widget20h -> widget19h [sametail=widget20h];
 widget21h -> widget19h [sametail=widget21h];
 widget1Bh [label="widget1Bh\ndevice=SPDIF Out",style=filled,shape=circle,fillcolor="#88ff88"];
 widget02h -> widget1Bh [sametail=widget02h];
 widget1Ch [label="widget1Ch\ndevice=SPDIF In",style=filled,shape=circle,fillcolor="#ff8888"];
 widget1Dh [label="widget1Dh\ndevice=Digital Out",style=filled,shape=circle,fillcolor="#88ff88"];
 widget0Bh -> widget1Dh [sametail=widget0Bh];
 widget1Eh [shape=invhouse];
 widget36h -> widget1Eh [sametail=widget36h];
 widget21h -> widget1Eh [sametail=widget21h];
 widget20h [shape=invhouse];
 widget39h -> widget20h [sametail=widget39h];
 widget33h -> widget20h [sametail=widget33h];
 widget38h -> widget20h [sametail=widget38h];
 widget3Dh -> widget20h [sametail=widget3Dh];
 widget34h -> widget20h [sametail=widget34h];
 widget3Bh -> widget20h [sametail=widget3Bh];
 widget18h -> widget20h [sametail=widget18h];
 widget1Ah -> widget20h [sametail=widget1Ah];
 widget21h [shape=invtrapezium];
 widget20h -> widget21h [sametail=widget20h];
 widget22h [shape=invhouse];
 widget37h -> widget22h [sametail=widget37h];
 widget21h -> widget22h [sametail=widget21h];
 widget11h -> widget23h [sametail=widget11h];
 widget12h -> widget23h [sametail=widget12h];
 widget13h -> widget23h [sametail=widget13h];
 widget14h -> widget23h [sametail=widget14h];
 widget15h -> widget23h [sametail=widget15h];
 widget16h -> widget23h [sametail=widget16h];
 widget17h -> widget23h [sametail=widget17h];
 widget18h -> widget23h [sametail=widget18h];
 widget24h -> widget23h [sametail=widget24h];
 widget25h -> widget23h [sametail=widget25h];
 widget38h -> widget23h [sametail=widget38h];
 widget39h -> widget23h [sametail=widget39h];
 widget3Ah -> widget23h [sametail=widget3Ah];
 widget3Bh -> widget23h [sametail=widget3Bh];
 widget3Ch -> widget23h [sametail=widget3Ch];
 widget3Dh -> widget23h [sametail=widget3Dh];
 widget20h -> widget23h [sametail=widget20h];
 widget21h -> widget23h [sametail=widget21h];
 widget24h [label="widget24h\ndevice=Line Out",style=filled,shape=doublecircle,fillcolor="#ffff88"];
 widget27h -> widget24h [sametail=widget27h];
 widget25h [label="widget25h\ndevice=Line Out",style=filled,shape=doublecircle,fillcolor="#ffff88"];
 widget28h -> widget25h [sametail=widget28h];
 widget26h [shape=invhouse];
 widget32h -> widget26h [sametail=widget32h];
 widget21h -> widget26h [sametail=widget21h];
 widget27h [shape=invhouse];
 widget05h -> widget27h [sametail=widget05h];
 widget21h -> widget27h [sametail=widget21h];
 widget28h [shape=invhouse];
 widget0Ah -> widget28h [sametail=widget0Ah];
 widget21h -> widget28h [sametail=widget21h];
 widget29h [shape=invhouse];
 widget04h -> widget29h [sametail=widget04h];
 widget21h -> widget29h [sametail=widget21h];
 widget2Ah [shape=invhouse];
 widget06h -> widget2Ah [sametail=widget06h];
 widget21h -> widget2Ah [sametail=widget21h];
 widget2Bh [shape=invhouse];
 widget30h -> widget2Bh [sametail=widget30h];
 widget21h -> widget2Bh [sametail=widget21h];
 widget2Ch [shape=invhouse];
 widget31h -> widget2Ch [sametail=widget31h];
 widget21h -> widget2Ch [sametail=widget21h];
 widget2Dh [shape=invhouse];
 widget1Eh -> widget2Dh [sametail=widget1Eh];
 widget11h -> widget2Fh [sametail=widget11h];
 widget12h -> widget2Fh [sametail=widget12h];
 widget14h -> widget2Fh [sametail=widget14h];
 widget15h -> widget2Fh [sametail=widget15h];
 widget16h -> widget2Fh [sametail=widget16h];
 widget17h -> widget2Fh [sametail=widget17h];
 widget30h [shape=invtrapezium];
 widget03h -> widget30h [sametail=widget03h];
 widget04h -> widget30h [sametail=widget04h];
 widget06h -> widget30h [sametail=widget06h];
 widget31h [shape=invtrapezium];
 widget04h -> widget31h [sametail=widget04h];
 widget0Ah -> widget31h [sametail=widget0Ah];
 widget32h [shape=invtrapezium];
 widget05h -> widget32h [sametail=widget05h];
 widget04h -> widget32h [sametail=widget04h];
 widget33h [shape=invtrapezium];
 widget3Ah -> widget33h [sametail=widget3Ah];
 widget25h -> widget33h [sametail=widget25h];
 widget24h -> widget33h [sametail=widget24h];
 widget34h [shape=invtrapezium];
 widget3Ch -> widget34h [sametail=widget3Ch];
 widget25h -> widget34h [sametail=widget25h];
 widget24h -> widget34h [sametail=widget24h];
 widget36h [shape=invtrapezium];
 widget03h -> widget36h [sametail=widget03h];
 widget04h -> widget36h [sametail=widget04h];
 widget06h -> widget36h [sametail=widget06h];
 widget37h [shape=invtrapezium];
 widget03h -> widget37h [sametail=widget03h];
 widget04h -> widget37h [sametail=widget04h];
 widget06h -> widget37h [sametail=widget06h];
 widget38h [shape=invtrapezium];
 widget11h -> widget38h [sametail=widget11h];
 widget39h [shape=invtrapezium];
 widget14h -> widget39h [sametail=widget14h];
 widget3Ah [shape=invtrapezium];
 widget15h -> widget3Ah [sametail=widget15h];
 widget3Ch [shape=invtrapezium];
 widget17h -> widget3Ch [sametail=widget17h];
 widget3Dh [shape=invtrapezium];
 widget12h -> widget3Dh [sametail=widget12h];
 {rank=min; widget02h; widget03h; widget04h; widget05h; widget06h; widget07h; widget08h; widget09h; widget0Ah; widget0Bh; widget0Fh;}
 {rank=max; widget11h; widget12h; widget13h; widget14h; widget15h; widget16h; widget17h; widget18h; widget1Bh; widget1Ch; widget1Dh; widget24h; widget25h;}
}
>How-To-Repeat:
Boot on my hardware, run mplayer, try to change volume.
>Fix:


>Release-Note:

>Audit-Trail:
From: Thomas Klausner <wiz@NetBSD.org>
To: NetBSD bugtracking <gnats-bugs@NetBSD.org>
Cc: 
Subject: Re: kern/42028: hdaudio: mplayer can't change volume
Date: Wed, 9 Sep 2009 01:08:48 +0200

 According to online sources, hardware seems to be
 Analog Devices AD1989B HD Audio Codec

From: Quentin Garnier <cube@cubidou.net>
To: gnats-bugs@NetBSD.org
Cc: Thomas Klausner <wiz@NetBSD.org>, jmcneill@netbsd.org
Subject: Re: kern/42028: hdaudio: mplayer can't change volume
Date: Wed, 9 Sep 2009 02:00:04 +0200

 --gBPpwzKX54beUJMp
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 Content-Transfer-Encoding: quoted-printable

 On Tue, Sep 08, 2009 at 11:10:06PM +0000, Thomas Klausner wrote:
 > The following reply was made to PR kern/42028; it has been noted by GNATS.
 >=20
 > From: Thomas Klausner <wiz@NetBSD.org>
 > To: NetBSD bugtracking <gnats-bugs@NetBSD.org>
 > Cc:=20
 > Subject: Re: kern/42028: hdaudio: mplayer can't change volume
 > Date: Wed, 9 Sep 2009 01:08:48 +0200
 >=20
 >  According to online sources, hardware seems to be
 >  Analog Devices AD1989B HD Audio Codec

 That's not really relevant.  It's the same old OSS mixer API vs. NetBSD
 mixer API.  I had checked in code long ago to make AC97 behave better in
 that particular situation (although that introduced some weird
 behaviours in other, much less frequent, situations), and I think it
 eventually found its way to azalia.

 Either the NetBSD API gets changed to be stateful and thus have a chance
 to support OSS properly (but that's not ideal either), or a similar hack
 has to be introduced for hdaudio(4).

 --=20
 Quentin Garnier - cube@cubidou.net - cube@NetBSD.org
 "See the look on my face from staying too long in one place
 [...] every time the morning breaks I know I'm closer to falling"
 KT Tunstall, Saving My Face, Drastic Fantastic, 2007.

 --gBPpwzKX54beUJMp
 Content-Type: application/pgp-signature
 Content-Disposition: inline

 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.9 (NetBSD)

 iQEcBAEBAgAGBQJKpvAEAAoJENgoQloHrPno78EIAMN+PVzie/xHhX4ba96qBHcz
 NuPW1kCcq6b8PjfRDiH/IQ4AtVdz2Z/A6Y4W6PAPIBlLdTMtFwEItalm21wkkSRc
 SeTaEtobxvQJjB1H5Kacn2DyGpT5mMOHnZasmVAQr9RrYSANFy/ij4acNGP+r4yq
 X5mW/WAAVtaoN+UXHavXOgNdiGWqfS+f/3gzuHjW7F4BEKf3ycAbXvte5XPvxatz
 /XFRSW1Fa7cMWi1BDgJG/fS9TZwomVCX00T5RA5IYA9E2KjeNkULrMCOaLyi5bzu
 lHoB3WFwqI2IOv7Uc4YHnmyJi9oK/LM+OV8gyLlKeFYrLj0ZbAhV1eoZJ9dyfVQ=
 =zXBu
 -----END PGP SIGNATURE-----

 --gBPpwzKX54beUJMp--

From: "Jared D. McNeill" <jmcneill@invisible.ca>
To: "'Quentin Garnier'" <cube@cubidou.net>,
	<gnats-bugs@NetBSD.org>
Cc: "'Thomas Klausner'" <wiz@NetBSD.org>
Subject: RE: kern/42028: hdaudio: mplayer can't change volume
Date: Tue, 8 Sep 2009 20:04:03 -0400

 The hdaudio(4) mixer is built with the OSS mixer APIs in mind. In this
 particular case, it is not handling the AD1989B correctly, and may be
 indicative of another issue.

 If hardware volume controls are truly not available, I do plan on adding
 software volume support using auconv so from the user POV it doesn't matter.


Responsible-Changed-From-To: kern-bug-people->tech-multimedia
Responsible-Changed-By: jmcneill@NetBSD.org
Responsible-Changed-When: Wed, 09 Sep 2009 18:22:57 +0000
Responsible-Changed-Why:
Reassign to tech-mm mailing list.


Responsible-Changed-From-To: tech-multimedia->tech-multimedia@NetBSD.org
Responsible-Changed-By: jmcneill@NetBSD.org
Responsible-Changed-When: Wed, 09 Sep 2009 20:16:11 +0000
Responsible-Changed-Why:
assign to mailing list needs @netbsd.org


From: Thomas Klausner <wiz@NetBSD.org>
To: gnats-bugs@NetBSD.org
Cc: "Jared D. McNeill" <jared.mcneill@gmail.com>
Subject: Re: kern/42028: hdaudio: mplayer can't change volume
Date: Wed, 23 Sep 2009 17:03:35 +0200

 On Wed, Sep 09, 2009 at 12:05:05AM +0000, Jared D. McNeill wrote:
 >  The hdaudio(4) mixer is built with the OSS mixer APIs in mind. In this
 >  particular case, it is not handling the AD1989B correctly, and may be
 >  indicative of another issue.
 >  
 >  If hardware volume controls are truly not available, I do plan on adding
 >  software volume support using auconv so from the user POV it doesn't matter.

 With azalia, I could change the hardware volume using inputs.dac04.

 Jared asked me to provide some more debugging info using slightly
 modified sources, here it is:

 With the changes you request in IRC, dmesg | grep hda gives:

 hdaudio0 at pci0 dev 27 function 0: HD Audio Controller
 hdaudio0: interrupting at ioapic0 pin 22
 hdafg0 at hdaudio0 vendor 0x11D4 product 0x989B nid 0x01 (firmware configuration)
 hdafg0: add connection 07->1C
 hdafg0: add connection 08->0C
 hdafg0: add connection 09->0D
 hdafg0: add connection 0C->38
 hdafg0: add connection 0C->39
 hdafg0: add connection 0C->3A
 hdafg0: add connection 0C->3B
 hdafg0: add connection 0C->3C
 hdafg0: add connection 0C->18
 hdafg0: add connection 0C->24
 hdafg0: add connection 0C->25
 hdafg0: add connection 0C->3D
 hdafg0: add connection 0C->20
 hdafg0: add connection 0C->1F
 hdafg0: add connection 0D->38
 hdafg0: add connection 0D->39
 hdafg0: add connection 0D->3A
 hdafg0: add connection 0D->3B
 hdafg0: add connection 0D->3C
 hdafg0: add connection 0D->18
 hdafg0: add connection 0D->24
 hdafg0: add connection 0D->25
 hdafg0: add connection 0D->3D
 hdafg0: add connection 0D->20
 hdafg0: add connection 0E->38
 hdafg0: add connection 0E->39
 hdafg0: add connection 0E->3A
 hdafg0: add connection 0E->3B
 hdafg0: add connection 0E->3C
 hdafg0: add connection 0E->18
 hdafg0: add connection 0E->24
 hdafg0: add connection 0E->25
 hdafg0: add connection 0E->3D
 hdafg0: add connection 0E->20
 hdafg0: add connection 0F->0E
 hdafg0: add connection 11->22
 hdafg0: add connection 12->29
 hdafg0: add connection 13->2D
 hdafg0: add connection 14->2B
 hdafg0: add connection 15->2C
 hdafg0: add connection 16->2A
 hdafg0: add connection 17->26
 hdafg0: add connection 19->20
 hdafg0: add connection 19->21
 hdafg0: add connection 1B->02
 hdafg0: add connection 1D->0B
 hdafg0: add connection 1E->36
 hdafg0: add connection 1E->21
 hdafg0: add connection 20->39
 hdafg0: add connection 20->33
 hdafg0: add connection 20->38
 hdafg0: add connection 20->3D
 hdafg0: add connection 20->34
 hdafg0: add connection 20->3B
 hdafg0: add connection 20->18
 hdafg0: add connection 20->1A
 hdafg0: add connection 21->20
 hdafg0: add connection 22->37
 hdafg0: add connection 22->21
 hdafg0: add connection 23->11
 hdafg0: add connection 23->12
 hdafg0: add connection 23->13
 hdafg0: add connection 23->14
 hdafg0: add connection 23->15
 hdafg0: add connection 23->16
 hdafg0: add connection 23->17
 hdafg0: add connection 23->18
 hdafg0: add connection 23->24
 hdafg0: add connection 23->25
 hdafg0: add connection 23->38
 hdafg0: add connection 23->39
 hdafg0: add connection 23->3A
 hdafg0: add connection 23->3B
 hdafg0: add connection 23->3C
 hdafg0: add connection 23->3D
 hdafg0: add connection 23->20
 hdafg0: add connection 23->21
 hdafg0: add connection 24->27
 hdafg0: add connection 25->28
 hdafg0: add connection 26->32
 hdafg0: add connection 26->21
 hdafg0: add connection 27->05
 hdafg0: add connection 27->21
 hdafg0: add connection 28->0A
 hdafg0: add connection 28->21
 hdafg0: add connection 29->04
 hdafg0: add connection 29->21
 hdafg0: add connection 2A->06
 hdafg0: add connection 2A->21
 hdafg0: add connection 2B->30
 hdafg0: add connection 2B->21
 hdafg0: add connection 2C->31
 hdafg0: add connection 2C->21
 hdafg0: add connection 2D->1E
 hdafg0: add connection 2F->11
 hdafg0: add connection 2F->12
 hdafg0: add connection 2F->14
 hdafg0: add connection 2F->15
 hdafg0: add connection 2F->16
 hdafg0: add connection 2F->17
 hdafg0: add connection 30->03
 hdafg0: add connection 30->04
 hdafg0: add connection 30->06
 hdafg0: add connection 31->04
 hdafg0: add connection 31->0A
 hdafg0: add connection 32->05
 hdafg0: add connection 32->04
 hdafg0: add connection 33->3A
 hdafg0: add connection 33->25
 hdafg0: add connection 33->24
 hdafg0: add connection 34->3C
 hdafg0: add connection 34->25
 hdafg0: add connection 34->24
 hdafg0: add connection 36->03
 hdafg0: add connection 36->04
 hdafg0: add connection 36->06
 hdafg0: add connection 37->03
 hdafg0: add connection 37->04
 hdafg0: add connection 37->06
 hdafg0: add connection 38->11
 hdafg0: add connection 39->14
 hdafg0: add connection 3A->15
 hdafg0: add connection 3C->17
 hdafg0: add connection 3D->12
 hdafg0: add ctrl outamp 0:03:FF
 hdafg0: add ctrl outamp 1:04:FF
 hdafg0: add ctrl outamp 2:05:FF
 hdafg0: add ctrl outamp 3:06:FF
 hdafg0: add ctrl outamp 4:0A:FF
 hdafg0: add ctrl outamp 5:0C:FF
 hdafg0: add ctrl outamp 6:0D:FF
 hdafg0: add ctrl outamp 7:0E:FF
 hdafg0: add ctrl outamp 8:10:FF
 hdafg0: add ctrl outamp 9:11:FF
 hdafg0: add ctrl outamp 10:12:FF
 hdafg0: add ctrl outamp 11:13:FF
 hdafg0: add ctrl outamp 12:14:FF
 hdafg0: add ctrl outamp 13:15:FF
 hdafg0: add ctrl outamp 14:16:FF
 hdafg0: add ctrl outamp 15:17:FF
 hdafg0: add ctrl outamp 16:1B:FF
 hdafg0: add ctrl inamp 17:1C:FF
 hdafg0: add ctrl outamp 18:1D:FF
 hdafg0: add ctrl inamp selmix 19:1E:36
 hdafg0: add ctrl inamp selmix 20:1E:21
 hdafg0: add ctrl inamp selmix 21:20:39
 hdafg0: add ctrl inamp selmix 22:20:33
 hdafg0: add ctrl inamp selmix 23:20:38
 hdafg0: add ctrl inamp selmix 24:20:3D
 hdafg0: add ctrl inamp selmix 25:20:34
 hdafg0: add ctrl inamp selmix 26:20:3B
 hdafg0: add ctrl inamp selmix 27:20:18
 hdafg0: add ctrl inamp selmix 28:20:1A
 hdafg0: add ctrl outamp 29:21:FF
 hdafg0: add ctrl inamp selmix 30:22:37
 hdafg0: add ctrl inamp selmix 31:22:21
 hdafg0: add ctrl outamp 32:24:FF
 hdafg0: add ctrl outamp 33:25:FF
 hdafg0: add ctrl inamp selmix 34:26:32
 hdafg0: add ctrl inamp selmix 35:26:21
 hdafg0: add ctrl inamp selmix 36:27:05
 hdafg0: add ctrl inamp selmix 37:27:21
 hdafg0: add ctrl inamp selmix 38:28:0A
 hdafg0: add ctrl inamp selmix 39:28:21
 hdafg0: add ctrl inamp selmix 40:29:04
 hdafg0: add ctrl inamp selmix 41:29:21
 hdafg0: add ctrl inamp selmix 42:2A:06
 hdafg0: add ctrl inamp selmix 43:2A:21
 hdafg0: add ctrl inamp selmix 44:2B:30
 hdafg0: add ctrl inamp selmix 45:2B:21
 hdafg0: add ctrl inamp selmix 46:2C:31
 hdafg0: add ctrl inamp selmix 47:2C:21
 hdafg0: add ctrl outamp 48:38:FF
 hdafg0: add ctrl outamp 49:39:FF
 hdafg0: add ctrl outamp 50:3A:FF
 hdafg0: add ctrl outamp 51:3C:FF
 hdafg0: add ctrl outamp 52:3D:FF
 hdafg0: disable 19 [nonaudio]
 hdafg0: disable 13 [no connectivity]
 hdafg0: disable 1C [no connectivity]
 hdafg0: disable ctl 11:13:FF [widget disabled]
 hdafg0: disable ctl 17:1C:FF [widget disabled]
 hdafg0: disable conn 07->1C [disabled child]
 hdafg0: disable conn 23->13 [disabled child]
 hdafg0: disable 2D [consumers disabled]
 hdafg0: disable 1E [consumers disabled]
 hdafg0: disable 36 [consumers disabled]
 hdafg0: disable ctl 19:1E:36 [widget disabled]
 hdafg0: disable ctl 20:1E:21 [widget disabled]
 hdafg0: depth 3 nid 04 dupseq -1 returned 04
 hdafg0: depth 6 nid 14 dupseq -1 returned 00
 hdafg0: depth 5 nid 39 dupseq -1 returned 00
 hdafg0: depth 7 nid 15 dupseq -1 returned 00
 hdafg0: depth 6 nid 3A dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 dupseq -1 returned 00
 hdafg0: depth 5 nid 33 dupseq -1 returned 00
 hdafg0: depth 6 nid 11 dupseq -1 returned 00
 hdafg0: depth 5 nid 38 dupseq -1 returned 00
 hdafg0: depth 6 nid 12 dupseq -1 returned 00
 hdafg0: depth 5 nid 3D dupseq -1 returned 00
 hdafg0: depth 7 nid 17 dupseq -1 returned 00
 hdafg0: depth 6 nid 3C dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 dupseq -1 returned 00
 hdafg0: depth 5 nid 34 dupseq -1 returned 00
 hdafg0: depth 5 nid 3B dupseq -1 returned 00
 hdafg0: depth 5 nid 18 dupseq -1 returned 00
 hdafg0: depth 5 nid 1A dupseq -1 returned 00
 hdafg0: depth 4 nid 20 dupseq -1 returned 00
 hdafg0: depth 3 nid 21 dupseq -1 returned 00
 hdafg0: depth 2 nid 29 dupseq -1 returned 04
 hdafg0: depth 1 nid 12 dupseq -1 returned 04
 hdafg0: depth 3 nid 05 dupseq -1 returned 05
 hdafg0: depth 6 nid 14 dupseq -1 returned 00
 hdafg0: depth 5 nid 39 dupseq -1 returned 00
 hdafg0: depth 7 nid 15 dupseq -1 returned 00
 hdafg0: depth 6 nid 3A dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 dupseq -1 returned 00
 hdafg0: depth 5 nid 33 dupseq -1 returned 00
 hdafg0: depth 6 nid 11 dupseq -1 returned 00
 hdafg0: depth 5 nid 38 dupseq -1 returned 00
 hdafg0: depth 6 nid 12 busy by seqmask 0
 hdafg0: depth 5 nid 3D dupseq -1 returned 00
 hdafg0: depth 7 nid 17 dupseq -1 returned 00
 hdafg0: depth 6 nid 3C dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 dupseq -1 returned 00
 hdafg0: depth 5 nid 34 dupseq -1 returned 00
 hdafg0: depth 5 nid 3B dupseq -1 returned 00
 hdafg0: depth 5 nid 18 dupseq -1 returned 00
 hdafg0: depth 5 nid 1A dupseq -1 returned 00
 hdafg0: depth 4 nid 20 dupseq -1 returned 00
 hdafg0: depth 3 nid 21 dupseq -1 returned 00
 hdafg0: depth 2 nid 27 dupseq -1 returned 05
 hdafg0: depth 1 nid 24 dupseq -1 returned 05
 hdafg0: depth 3 nid 06 dupseq -1 returned 06
 hdafg0: depth 6 nid 14 dupseq -1 returned 00
 hdafg0: depth 5 nid 39 dupseq -1 returned 00
 hdafg0: depth 7 nid 15 dupseq -1 returned 00
 hdafg0: depth 6 nid 3A dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 busy by seqmask 0
 hdafg0: depth 5 nid 33 dupseq -1 returned 00
 hdafg0: depth 6 nid 11 dupseq -1 returned 00
 hdafg0: depth 5 nid 38 dupseq -1 returned 00
 hdafg0: depth 6 nid 12 busy by seqmask 0
 hdafg0: depth 5 nid 3D dupseq -1 returned 00
 hdafg0: depth 7 nid 17 dupseq -1 returned 00
 hdafg0: depth 6 nid 3C dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 busy by seqmask 0
 hdafg0: depth 5 nid 34 dupseq -1 returned 00
 hdafg0: depth 5 nid 3B dupseq -1 returned 00
 hdafg0: depth 5 nid 18 dupseq -1 returned 00
 hdafg0: depth 5 nid 1A dupseq -1 returned 00
 hdafg0: depth 4 nid 20 dupseq -1 returned 00
 hdafg0: depth 3 nid 21 dupseq -1 returned 00
 hdafg0: depth 2 nid 2A dupseq -1 returned 06
 hdafg0: depth 1 nid 16 dupseq -1 returned 06
 hdafg0: depth 3 nid 0A dupseq -1 returned 0A
 hdafg0: depth 6 nid 14 dupseq -1 returned 00
 hdafg0: depth 5 nid 39 dupseq -1 returned 00
 hdafg0: depth 7 nid 15 dupseq -1 returned 00
 hdafg0: depth 6 nid 3A dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 busy by seqmask 0
 hdafg0: depth 5 nid 33 dupseq -1 returned 00
 hdafg0: depth 6 nid 11 dupseq -1 returned 00
 hdafg0: depth 5 nid 38 dupseq -1 returned 00
 hdafg0: depth 6 nid 12 busy by seqmask 0
 hdafg0: depth 5 nid 3D dupseq -1 returned 00
 hdafg0: depth 7 nid 17 dupseq -1 returned 00
 hdafg0: depth 6 nid 3C dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 busy by seqmask 0
 hdafg0: depth 5 nid 34 dupseq -1 returned 00
 hdafg0: depth 5 nid 3B dupseq -1 returned 00
 hdafg0: depth 5 nid 18 dupseq -1 returned 00
 hdafg0: depth 5 nid 1A dupseq -1 returned 00
 hdafg0: depth 4 nid 20 dupseq -1 returned 00
 hdafg0: depth 3 nid 21 dupseq -1 returned 00
 hdafg0: depth 2 nid 28 dupseq -1 returned 0A
 hdafg0: depth 1 nid 25 dupseq -1 returned 0A
 hdafg0: depth 4 nid 03 dupseq -1 returned 03
 hdafg0: depth 4 nid 04 busy by assoc 0
 hdafg0: depth 4 nid 06 busy by assoc 0
 hdafg0: depth 3 nid 37 dupseq -1 returned 03
 hdafg0: depth 6 nid 14 dupseq -1 returned 00
 hdafg0: depth 5 nid 39 dupseq -1 returned 00
 hdafg0: depth 7 nid 15 dupseq -1 returned 00
 hdafg0: depth 6 nid 3A dupseq -1 returned 00
 hdafg0: depth 6 nid 25 busy by assoc 0
 hdafg0: depth 6 nid 24 busy by assoc 0
 hdafg0: depth 5 nid 33 dupseq -1 returned 00
 hdafg0: depth 6 nid 11 dupseq -1 returned 00
 hdafg0: depth 5 nid 38 dupseq -1 returned 00
 hdafg0: depth 6 nid 12 busy by assoc 0
 hdafg0: depth 5 nid 3D dupseq -1 returned 00
 hdafg0: depth 7 nid 17 dupseq -1 returned 00
 hdafg0: depth 6 nid 3C dupseq -1 returned 00
 hdafg0: depth 6 nid 25 busy by assoc 0
 hdafg0: depth 6 nid 24 busy by assoc 0
 hdafg0: depth 5 nid 34 dupseq -1 returned 00
 hdafg0: depth 5 nid 3B dupseq -1 returned 00
 hdafg0: depth 5 nid 18 dupseq -1 returned 00
 hdafg0: depth 5 nid 1A dupseq -1 returned 00
 hdafg0: depth 4 nid 20 dupseq -1 returned 00
 hdafg0: depth 3 nid 21 dupseq -1 returned 00
 hdafg0: depth 2 nid 22 dupseq -1 returned 03
 hdafg0: depth 1 nid 11 dupseq -1 returned 03
 hdafg0: depth 2 nid 02 dupseq -1 returned 02
 hdafg0: depth 1 nid 1B dupseq -1 returned 02
 hdafg0: depth 2 nid 0B dupseq -1 returned 0B
 hdafg0: depth 1 nid 1D dupseq -1 returned 0B
 hdafg0: disable 07 [unassociated]
 hdafg0: disable 09 [unassociated]
 hdafg0: disable 0D [unassociated]
 hdafg0: disable 0E [unassociated]
 hdafg0: disable 0F [unassociated]
 hdafg0: disable 1F [unassociated]
 hdafg0: disable 23 [unassociated]
 hdafg0: disable 26 [unassociated]
 hdafg0: disable 2B [unassociated]
 hdafg0: disable 2C [unassociated]
 hdafg0: disable 2E [unassociated]
 hdafg0: disable 2F [unassociated]
 hdafg0: disable 30 [unassociated]
 hdafg0: disable 31 [unassociated]
 hdafg0: disable 32 [unassociated]
 hdafg0: disable 35 [unassociated]
 hdafg0: disable 38 [unassociated]
 hdafg0: disable 3B [unassociated]
 hdafg0: disable 3D [unassociated]
 hdafg0: disable 14 input connections
 hdafg0: disable 15 input connections
 hdafg0: disable 17 input connections
 hdafg0: disable 18 input connections
 hdafg0: disable 0C -> 24 output connection
 hdafg0: disable 33 -> 24 output connection
 hdafg0: disable 34 -> 24 output connection
 hdafg0: disable 0C -> 25 output connection
 hdafg0: disable 33 -> 25 output connection
 hdafg0: disable 34 -> 25 output connection
 hdafg0: disable 37->04 [unselected]
 hdafg0: disable 37->06 [unselected]
 hdafg0: disable ctl 6:0D:FF [widget disabled]
 hdafg0: disable ctl 7:0E:FF [widget disabled]
 hdafg0: disable ctl 23:20:38 [widget disabled]
 hdafg0: disable ctl 24:20:3D [widget disabled]
 hdafg0: disable ctl 26:20:3B [widget disabled]
 hdafg0: disable ctl 34:26:32 [widget disabled]
 hdafg0: disable ctl 35:26:21 [widget disabled]
 hdafg0: disable ctl 44:2B:30 [widget disabled]
 hdafg0: disable ctl 45:2B:21 [widget disabled]
 hdafg0: disable ctl 46:2C:31 [widget disabled]
 hdafg0: disable ctl 47:2C:21 [widget disabled]
 hdafg0: disable ctl 48:38:FF [widget disabled]
 hdafg0: disable ctl 52:3D:FF [widget disabled]
 hdafg0: disable conn 0C->38 [disabled child]
 hdafg0: disable conn 0C->3B [disabled child]
 hdafg0: disable conn 0C->3D [disabled child]
 hdafg0: disable conn 0C->1F [disabled child]
 hdafg0: found 3 GPIOs
 hdafg0: jack detect not enabled
 hdafg0:   need 14 mixers (3 classes)
 hdafg0:   adding outputs.master (ctl 0:03:FF)
 hdafg0:   adding record.dac (ctl 0:03:FF)
 hdafg0:   adding record.beep (ctl 0:10:FF)
 hdafg0:   adding record.line (ctl 0:3A:FF)
 hdafg0:   adding record.mic (ctl 0:39:FF)
 hdafg0:   adding record.cd (ctl 6:20:18)
 hdafg0:   adding record.record (ctl 0:20:39)
 hdafg0:   adding record.reclvl (ctl 0:0C:FF)
 hdafg0:   adding record.monitor (ctl 0:3C:FF)
 hdafg0: DAC0:04, Analog Speaker: Jack (Green, 12)
 hdafg0: DAC0:05, Analog Speaker: Jack (Orange, 24)
 hdafg0: DAC0:06, Analog Speaker: Jack (Black, 16)
 hdafg0: DAC0:0A, Analog Speaker: Jack (Grey, 25)
 hdafg0: ADC1:08, Analog Mic In: Jack (Pink, 17)
 hdafg0: ADC1:08, Analog Line In: Jack (Blue, 15)
 hdafg0: ADC1:08, Analog CD: Fixed Function (Black, 18)
 hdafg0: ADC1:08, Analog Mic In: Jack (Pink, 14)
 hdafg0: DAC2:03, Analog HP Out: Jack (Green, 11)
 hdafg0: DAC3:02, Digital SPDIF Out: Jack (Other, 1B)
 hdafg0: DAC4:0B, Digital Digital Other Out: Jack (Other, 1D)
 hdafg0: 8ch/2ch 8000Hz-192000Hz 16/16 20/32 24/32
 audio0 at hdafg0: full duplex, independent

 Cheers,
  Thomas

From: Thomas Klausner <wiz@NetBSD.org>
To: NetBSD bugtracking <gnats-bugs@NetBSD.org>
Cc: "Jared D. McNeill" <jared.mcneill@gmail.com>
Subject: Re: kern/42028: hdaudio: mplayer can't change volume
Date: Wed, 23 Sep 2009 17:28:08 +0200

 On Wed, Sep 23, 2009 at 03:05:03PM +0000, Thomas Klausner wrote:
 >  With the changes you request in IRC, dmesg | grep hda gives:

 With another change (commenting out a block in
 hdaudio_afg_widget_getcaps) and a pasto fixed, it gives:

 hdaudio0 at pci0 dev 27 function 0: HD Audio Controller
 hdaudio0: interrupting at ioapic0 pin 22
 hdafg0 at hdaudio0 vendor 0x11D4 product 0x989B nid 0x01 (firmware configuration)
 hdafg0: add connection 07->1C
 hdafg0: add connection 08->0C
 hdafg0: add connection 09->0D
 hdafg0: add connection 0C->38
 hdafg0: add connection 0C->39
 hdafg0: add connection 0C->3A
 hdafg0: add connection 0C->3B
 hdafg0: add connection 0C->3C
 hdafg0: add connection 0C->18
 hdafg0: add connection 0C->24
 hdafg0: add connection 0C->25
 hdafg0: add connection 0C->3D
 hdafg0: add connection 0C->20
 hdafg0: add connection 0C->1F
 hdafg0: add connection 0D->38
 hdafg0: add connection 0D->39
 hdafg0: add connection 0D->3A
 hdafg0: add connection 0D->3B
 hdafg0: add connection 0D->3C
 hdafg0: add connection 0D->18
 hdafg0: add connection 0D->24
 hdafg0: add connection 0D->25
 hdafg0: add connection 0D->3D
 hdafg0: add connection 0D->20
 hdafg0: add connection 0E->38
 hdafg0: add connection 0E->39
 hdafg0: add connection 0E->3A
 hdafg0: add connection 0E->3B
 hdafg0: add connection 0E->3C
 hdafg0: add connection 0E->18
 hdafg0: add connection 0E->24
 hdafg0: add connection 0E->25
 hdafg0: add connection 0E->3D
 hdafg0: add connection 0E->20
 hdafg0: add connection 0F->0E
 hdafg0: add connection 11->22
 hdafg0: add connection 12->29
 hdafg0: add connection 13->2D
 hdafg0: add connection 14->2B
 hdafg0: add connection 15->2C
 hdafg0: add connection 16->2A
 hdafg0: add connection 17->26
 hdafg0: add connection 19->20
 hdafg0: add connection 19->21
 hdafg0: add connection 1B->02
 hdafg0: add connection 1D->0B
 hdafg0: add connection 1E->36
 hdafg0: add connection 1E->21
 hdafg0: add connection 20->39
 hdafg0: add connection 20->33
 hdafg0: add connection 20->38
 hdafg0: add connection 20->3D
 hdafg0: add connection 20->34
 hdafg0: add connection 20->3B
 hdafg0: add connection 20->18
 hdafg0: add connection 20->1A
 hdafg0: add connection 21->20
 hdafg0: add connection 22->37
 hdafg0: add connection 22->21
 hdafg0: add connection 23->11
 hdafg0: add connection 23->12
 hdafg0: add connection 23->13
 hdafg0: add connection 23->14
 hdafg0: add connection 23->15
 hdafg0: add connection 23->16
 hdafg0: add connection 23->17
 hdafg0: add connection 23->18
 hdafg0: add connection 23->24
 hdafg0: add connection 23->25
 hdafg0: add connection 23->38
 hdafg0: add connection 23->39
 hdafg0: add connection 23->3A
 hdafg0: add connection 23->3B
 hdafg0: add connection 23->3C
 hdafg0: add connection 23->3D
 hdafg0: add connection 23->20
 hdafg0: add connection 23->21
 hdafg0: add connection 24->27
 hdafg0: add connection 25->28
 hdafg0: add connection 26->32
 hdafg0: add connection 26->21
 hdafg0: add connection 27->05
 hdafg0: add connection 27->21
 hdafg0: add connection 28->0A
 hdafg0: add connection 28->21
 hdafg0: add connection 29->04
 hdafg0: add connection 29->21
 hdafg0: add connection 2A->06
 hdafg0: add connection 2A->21
 hdafg0: add connection 2B->30
 hdafg0: add connection 2B->21
 hdafg0: add connection 2C->31
 hdafg0: add connection 2C->21
 hdafg0: add connection 2D->1E
 hdafg0: add connection 2F->11
 hdafg0: add connection 2F->12
 hdafg0: add connection 2F->14
 hdafg0: add connection 2F->15
 hdafg0: add connection 2F->16
 hdafg0: add connection 2F->17
 hdafg0: add connection 30->03
 hdafg0: add connection 30->04
 hdafg0: add connection 30->06
 hdafg0: add connection 31->04
 hdafg0: add connection 31->0A
 hdafg0: add connection 32->05
 hdafg0: add connection 32->04
 hdafg0: add connection 33->3A
 hdafg0: add connection 33->25
 hdafg0: add connection 33->24
 hdafg0: add connection 34->3C
 hdafg0: add connection 34->25
 hdafg0: add connection 34->24
 hdafg0: add connection 36->03
 hdafg0: add connection 36->04
 hdafg0: add connection 36->06
 hdafg0: add connection 37->03
 hdafg0: add connection 37->04
 hdafg0: add connection 37->06
 hdafg0: add connection 38->11
 hdafg0: add connection 39->14
 hdafg0: add connection 3A->15
 hdafg0: add connection 3C->17
 hdafg0: add connection 3D->12
 hdafg0: add ctrl outamp 0:03:FF
 hdafg0: add ctrl outamp 1:04:FF
 hdafg0: add ctrl outamp 2:05:FF
 hdafg0: add ctrl outamp 3:06:FF
 hdafg0: add ctrl outamp 4:0A:FF
 hdafg0: add ctrl outamp 5:0C:FF
 hdafg0: add ctrl outamp 6:0D:FF
 hdafg0: add ctrl outamp 7:0E:FF
 hdafg0: add ctrl outamp 8:10:FF
 hdafg0: add ctrl outamp 9:11:FF
 hdafg0: add ctrl outamp 10:12:FF
 hdafg0: add ctrl outamp 11:13:FF
 hdafg0: add ctrl outamp 12:14:FF
 hdafg0: add ctrl outamp 13:15:FF
 hdafg0: add ctrl outamp 14:16:FF
 hdafg0: add ctrl outamp 15:17:FF
 hdafg0: add ctrl outamp 16:1B:FF
 hdafg0: add ctrl inamp 17:1C:FF
 hdafg0: add ctrl outamp 18:1D:FF
 hdafg0: add ctrl inamp selmix 19:1E:36
 hdafg0: add ctrl inamp selmix 20:1E:21
 hdafg0: add ctrl inamp selmix 21:20:39
 hdafg0: add ctrl inamp selmix 22:20:33
 hdafg0: add ctrl inamp selmix 23:20:38
 hdafg0: add ctrl inamp selmix 24:20:3D
 hdafg0: add ctrl inamp selmix 25:20:34
 hdafg0: add ctrl inamp selmix 26:20:3B
 hdafg0: add ctrl inamp selmix 27:20:18
 hdafg0: add ctrl inamp selmix 28:20:1A
 hdafg0: add ctrl outamp 29:21:FF
 hdafg0: add ctrl inamp selmix 30:22:37
 hdafg0: add ctrl inamp selmix 31:22:21
 hdafg0: add ctrl outamp 32:24:FF
 hdafg0: add ctrl outamp 33:25:FF
 hdafg0: add ctrl inamp selmix 34:26:32
 hdafg0: add ctrl inamp selmix 35:26:21
 hdafg0: add ctrl inamp selmix 36:27:05
 hdafg0: add ctrl inamp selmix 37:27:21
 hdafg0: add ctrl inamp selmix 38:28:0A
 hdafg0: add ctrl inamp selmix 39:28:21
 hdafg0: add ctrl inamp selmix 40:29:04
 hdafg0: add ctrl inamp selmix 41:29:21
 hdafg0: add ctrl inamp selmix 42:2A:06
 hdafg0: add ctrl inamp selmix 43:2A:21
 hdafg0: add ctrl inamp selmix 44:2B:30
 hdafg0: add ctrl inamp selmix 45:2B:21
 hdafg0: add ctrl inamp selmix 46:2C:31
 hdafg0: add ctrl inamp selmix 47:2C:21
 hdafg0: add ctrl outamp 48:38:FF
 hdafg0: add ctrl outamp 49:39:FF
 hdafg0: add ctrl outamp 50:3A:FF
 hdafg0: add ctrl outamp 51:3C:FF
 hdafg0: add ctrl outamp 52:3D:FF
 hdafg0: disable 19 [nonaudio]
 hdafg0: disable 13 [no connectivity]
 hdafg0: disable 1A [no connectivity]
 hdafg0: disable 1C [no connectivity]
 hdafg0: disable ctl 11:13:FF [widget disabled]
 hdafg0: disable ctl 17:1C:FF [widget disabled]
 hdafg0: disable ctl 28:20:1A [widget disabled]
 hdafg0: disable conn 07->1C [disabled child]
 hdafg0: disable conn 23->13 [disabled child]
 hdafg0: disable 2D [consumers disabled]
 hdafg0: disable 1E [consumers disabled]
 hdafg0: disable 36 [consumers disabled]
 hdafg0: disable ctl 19:1E:36 [widget disabled]
 hdafg0: disable ctl 20:1E:21 [widget disabled]
 hdafg0: depth 3 nid 04 dupseq -1 returned 04
 hdafg0: depth 6 nid 14 dupseq -1 returned 00
 hdafg0: depth 5 nid 39 dupseq -1 returned 00
 hdafg0: depth 7 nid 15 dupseq -1 returned 00
 hdafg0: depth 6 nid 3A dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 dupseq -1 returned 00
 hdafg0: depth 5 nid 33 dupseq -1 returned 00
 hdafg0: depth 6 nid 11 dupseq -1 returned 00
 hdafg0: depth 5 nid 38 dupseq -1 returned 00
 hdafg0: depth 6 nid 12 dupseq -1 returned 00
 hdafg0: depth 5 nid 3D dupseq -1 returned 00
 hdafg0: depth 7 nid 17 dupseq -1 returned 00
 hdafg0: depth 6 nid 3C dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 dupseq -1 returned 00
 hdafg0: depth 5 nid 34 dupseq -1 returned 00
 hdafg0: depth 5 nid 3B dupseq -1 returned 00
 hdafg0: depth 5 nid 18 dupseq -1 returned 00
 hdafg0: depth 4 nid 20 dupseq -1 returned 00
 hdafg0: depth 3 nid 21 dupseq -1 returned 00
 hdafg0: depth 2 nid 29 dupseq -1 returned 04
 hdafg0: depth 1 nid 12 dupseq -1 returned 04
 hdafg0: depth 3 nid 05 dupseq -1 returned 05
 hdafg0: depth 6 nid 14 dupseq -1 returned 00
 hdafg0: depth 5 nid 39 dupseq -1 returned 00
 hdafg0: depth 7 nid 15 dupseq -1 returned 00
 hdafg0: depth 6 nid 3A dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 dupseq -1 returned 00
 hdafg0: depth 5 nid 33 dupseq -1 returned 00
 hdafg0: depth 6 nid 11 dupseq -1 returned 00
 hdafg0: depth 5 nid 38 dupseq -1 returned 00
 hdafg0: depth 6 nid 12 busy by seqmask 0
 hdafg0: depth 5 nid 3D dupseq -1 returned 00
 hdafg0: depth 7 nid 17 dupseq -1 returned 00
 hdafg0: depth 6 nid 3C dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 dupseq -1 returned 00
 hdafg0: depth 5 nid 34 dupseq -1 returned 00
 hdafg0: depth 5 nid 3B dupseq -1 returned 00
 hdafg0: depth 5 nid 18 dupseq -1 returned 00
 hdafg0: depth 4 nid 20 dupseq -1 returned 00
 hdafg0: depth 3 nid 21 dupseq -1 returned 00
 hdafg0: depth 2 nid 27 dupseq -1 returned 05
 hdafg0: depth 1 nid 24 dupseq -1 returned 05
 hdafg0: depth 3 nid 06 dupseq -1 returned 06
 hdafg0: depth 6 nid 14 dupseq -1 returned 00
 hdafg0: depth 5 nid 39 dupseq -1 returned 00
 hdafg0: depth 7 nid 15 dupseq -1 returned 00
 hdafg0: depth 6 nid 3A dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 busy by seqmask 0
 hdafg0: depth 5 nid 33 dupseq -1 returned 00
 hdafg0: depth 6 nid 11 dupseq -1 returned 00
 hdafg0: depth 5 nid 38 dupseq -1 returned 00
 hdafg0: depth 6 nid 12 busy by seqmask 0
 hdafg0: depth 5 nid 3D dupseq -1 returned 00
 hdafg0: depth 7 nid 17 dupseq -1 returned 00
 hdafg0: depth 6 nid 3C dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 busy by seqmask 0
 hdafg0: depth 5 nid 34 dupseq -1 returned 00
 hdafg0: depth 5 nid 3B dupseq -1 returned 00
 hdafg0: depth 5 nid 18 dupseq -1 returned 00
 hdafg0: depth 4 nid 20 dupseq -1 returned 00
 hdafg0: depth 3 nid 21 dupseq -1 returned 00
 hdafg0: depth 2 nid 2A dupseq -1 returned 06
 hdafg0: depth 1 nid 16 dupseq -1 returned 06
 hdafg0: depth 3 nid 0A dupseq -1 returned 0A
 hdafg0: depth 6 nid 14 dupseq -1 returned 00
 hdafg0: depth 5 nid 39 dupseq -1 returned 00
 hdafg0: depth 7 nid 15 dupseq -1 returned 00
 hdafg0: depth 6 nid 3A dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 busy by seqmask 0
 hdafg0: depth 5 nid 33 dupseq -1 returned 00
 hdafg0: depth 6 nid 11 dupseq -1 returned 00
 hdafg0: depth 5 nid 38 dupseq -1 returned 00
 hdafg0: depth 6 nid 12 busy by seqmask 0
 hdafg0: depth 5 nid 3D dupseq -1 returned 00
 hdafg0: depth 7 nid 17 dupseq -1 returned 00
 hdafg0: depth 6 nid 3C dupseq -1 returned 00
 hdafg0: depth 6 nid 25 dupseq -1 returned 00
 hdafg0: depth 6 nid 24 busy by seqmask 0
 hdafg0: depth 5 nid 34 dupseq -1 returned 00
 hdafg0: depth 5 nid 3B dupseq -1 returned 00
 hdafg0: depth 5 nid 18 dupseq -1 returned 00
 hdafg0: depth 4 nid 20 dupseq -1 returned 00
 hdafg0: depth 3 nid 21 dupseq -1 returned 00
 hdafg0: depth 2 nid 28 dupseq -1 returned 0A
 hdafg0: depth 1 nid 25 dupseq -1 returned 0A
 hdafg0: depth 4 nid 03 dupseq -1 returned 03
 hdafg0: depth 4 nid 04 busy by assoc 0
 hdafg0: depth 4 nid 06 busy by assoc 0
 hdafg0: depth 3 nid 37 dupseq -1 returned 03
 hdafg0: depth 6 nid 14 dupseq -1 returned 00
 hdafg0: depth 5 nid 39 dupseq -1 returned 00
 hdafg0: depth 7 nid 15 dupseq -1 returned 00
 hdafg0: depth 6 nid 3A dupseq -1 returned 00
 hdafg0: depth 6 nid 25 busy by assoc 0
 hdafg0: depth 6 nid 24 busy by assoc 0
 hdafg0: depth 5 nid 33 dupseq -1 returned 00
 hdafg0: depth 6 nid 11 dupseq -1 returned 00
 hdafg0: depth 5 nid 38 dupseq -1 returned 00
 hdafg0: depth 6 nid 12 busy by assoc 0
 hdafg0: depth 5 nid 3D dupseq -1 returned 00
 hdafg0: depth 7 nid 17 dupseq -1 returned 00
 hdafg0: depth 6 nid 3C dupseq -1 returned 00
 hdafg0: depth 6 nid 25 busy by assoc 0
 hdafg0: depth 6 nid 24 busy by assoc 0
 hdafg0: depth 5 nid 34 dupseq -1 returned 00
 hdafg0: depth 5 nid 3B dupseq -1 returned 00
 hdafg0: depth 5 nid 18 dupseq -1 returned 00
 hdafg0: depth 4 nid 20 dupseq -1 returned 00
 hdafg0: depth 3 nid 21 dupseq -1 returned 00
 hdafg0: depth 2 nid 22 dupseq -1 returned 03
 hdafg0: depth 1 nid 11 dupseq -1 returned 03
 hdafg0: depth 2 nid 02 dupseq -1 returned 02
 hdafg0: depth 1 nid 1B dupseq -1 returned 02
 hdafg0: depth 2 nid 0B dupseq -1 returned 0B
 hdafg0: depth 1 nid 1D dupseq -1 returned 0B
 hdafg0: disable 07 [unassociated]
 hdafg0: disable 09 [unassociated]
 hdafg0: disable 0D [unassociated]
 hdafg0: disable 0E [unassociated]
 hdafg0: disable 0F [unassociated]
 hdafg0: disable 1F [unassociated]
 hdafg0: disable 23 [unassociated]
 hdafg0: disable 26 [unassociated]
 hdafg0: disable 2B [unassociated]
 hdafg0: disable 2C [unassociated]
 hdafg0: disable 2E [unassociated]
 hdafg0: disable 2F [unassociated]
 hdafg0: disable 30 [unassociated]
 hdafg0: disable 31 [unassociated]
 hdafg0: disable 32 [unassociated]
 hdafg0: disable 35 [unassociated]
 hdafg0: disable 38 [unassociated]
 hdafg0: disable 3B [unassociated]
 hdafg0: disable 3D [unassociated]
 hdafg0: disable 14 input connections
 hdafg0: disable 15 input connections
 hdafg0: disable 17 input connections
 hdafg0: disable 18 input connections
 hdafg0: disable 0C -> 24 output connection
 hdafg0: disable 33 -> 24 output connection
 hdafg0: disable 34 -> 24 output connection
 hdafg0: disable 0C -> 25 output connection
 hdafg0: disable 33 -> 25 output connection
 hdafg0: disable 34 -> 25 output connection
 hdafg0: disable 37->04 [unselected]
 hdafg0: disable 37->06 [unselected]
 hdafg0: disable ctl 6:0D:FF [widget disabled]
 hdafg0: disable ctl 7:0E:FF [widget disabled]
 hdafg0: disable ctl 23:20:38 [widget disabled]
 hdafg0: disable ctl 24:20:3D [widget disabled]
 hdafg0: disable ctl 26:20:3B [widget disabled]
 hdafg0: disable ctl 34:26:32 [widget disabled]
 hdafg0: disable ctl 35:26:21 [widget disabled]
 hdafg0: disable ctl 44:2B:30 [widget disabled]
 hdafg0: disable ctl 45:2B:21 [widget disabled]
 hdafg0: disable ctl 46:2C:31 [widget disabled]
 hdafg0: disable ctl 47:2C:21 [widget disabled]
 hdafg0: disable ctl 48:38:FF [widget disabled]
 hdafg0: disable ctl 52:3D:FF [widget disabled]
 hdafg0: disable conn 0C->38 [disabled child]
 hdafg0: disable conn 0C->3B [disabled child]
 hdafg0: disable conn 0C->3D [disabled child]
 hdafg0: disable conn 0C->1F [disabled child]
 hdafg0: found 3 GPIOs
 hdafg0: jack detect not enabled
 hdafg0:   need 14 mixers (3 classes)
 hdafg0:   adding outputs.master (ctl 0:03:FF)
 hdafg0:   adding inputs.dac (ctl 0:03:FF)
 hdafg0:   adding inputs.beep (ctl 0:10:FF)
 hdafg0:   adding inputs.line (ctl 0:3A:FF)
 hdafg0:   adding record.mic (ctl 0:39:FF)
 hdafg0:   adding inputs.cd (ctl 6:20:18)
 hdafg0:   adding inputs.record (ctl 0:20:39)
 hdafg0:   adding inputs.reclvl (ctl 0:0C:FF)
 hdafg0:   adding record.monitor (ctl 0:3C:FF)
 hdafg0: DAC0:04, Analog Speaker: Jack (Green, 12)
 hdafg0: DAC0:05, Analog Speaker: Jack (Orange, 24)
 hdafg0: DAC0:06, Analog Speaker: Jack (Black, 16)
 hdafg0: DAC0:0A, Analog Speaker: Jack (Grey, 25)
 hdafg0: ADC1:08, Analog Mic In: Jack (Pink, 17)
 hdafg0: ADC1:08, Analog Line In: Jack (Blue, 15)
 hdafg0: ADC1:08, Analog CD: Fixed Function (Black, 18)
 hdafg0: ADC1:08, Analog Mic In: Jack (Pink, 14)
 hdafg0: DAC2:03, Analog HP Out: Jack (Green, 11)
 hdafg0: DAC3:02, Digital SPDIF Out: Jack (Other, 1B)
 hdafg0: DAC4:0B, Digital Digital Other Out: Jack (Other, 1D)
 hdafg0: 8ch/2ch 8000Hz-192000Hz 16/16 20/32 24/32
 audio0 at hdafg0: full duplex, independent

  Thomas

From: "Jared D. McNeill" <jmcneill@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/42028 CVS commit: src/sys/dev/pci/hdaudio
Date: Sat, 26 Sep 2009 17:05:01 +0000

 Module Name:	src
 Committed By:	jmcneill
 Date:		Sat Sep 26 17:05:01 UTC 2009

 Modified Files:
 	src/sys/dev/pci/hdaudio: hdaudio_afg.c

 Log Message:
 PR# kern/42110: No mute control on hdaudio(4)
 PR# kern/42028: hdaudio: mplayer can't change volume

 Since the driver is not limited to OSS mixer APIs, allow for duplicate
 mixer nodes with the same role. Resolves a regression where certain
 controls may no longer be available that were previously possible with
 azalia(4). Part of a fix for 42028. While here, add .mute controls to
 address 42110.


 To generate a diff of this commit:
 cvs rdiff -u -r1.13 -r1.14 src/sys/dev/pci/hdaudio/hdaudio_afg.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->feedback
State-Changed-By: dholland@NetBSD.org
State-Changed-When: Mon, 19 Oct 2009 01:21:15 +0000
State-Changed-Why:
Fixed?


From: Thomas Klausner <wiz@NetBSD.org>
To: gnats-bugs@NetBSD.org
Cc: 
Subject: Re: kern/42028 (hdaudio: mplayer can't change volume)
Date: Tue, 20 Oct 2009 23:49:41 +0200

 On Mon, Oct 19, 2009 at 01:21:16AM +0000, dholland@NetBSD.org wrote:
 > Synopsis: hdaudio: mplayer can't change volume
 > 
 > State-Changed-From-To: open->feedback
 > State-Changed-By: dholland@NetBSD.org
 > State-Changed-When: Mon, 19 Oct 2009 01:21:15 +0000
 > State-Changed-Why:
 > Fixed?

 I now have many more devices for mixerctl to handle.
 In particular, outputs.master2 influences the volume.
 mplayer now falls back again to software volume.

 I guess it's fixed.

 Is there a way to call outputs.master2 outputs.master instead (without
 the 2)? That'd be even more useful.
  Thomas

State-Changed-From-To: feedback->open
State-Changed-By: wiz@NetBSD.org
State-Changed-When: Thu, 05 Nov 2009 18:23:57 +0000
State-Changed-Why:
Feedback supplied; basically fixed, but one question remaining.


Responsible-Changed-From-To: tech-multimedia@NetBSD.org->kern-bug-people
Responsible-Changed-By: spz@NetBSD.org
Responsible-Changed-When: Tue, 05 May 2015 19:24:59 +0000
Responsible-Changed-Why:
tech-multimedia is gone


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.