From os@brain.cc.rsu.ru  Wed Jan 30 08:56:46 2008
Return-Path: <os@brain.cc.rsu.ru>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 55D3616A418
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 30 Jan 2008 08:56:46 +0000 (UTC)
	(envelope-from os@brain.cc.rsu.ru)
Received: from brain.cc.rsu.ru (brain.cc.rsu.ru [195.208.252.154])
	by mx1.freebsd.org (Postfix) with ESMTP id 4F6A113C442
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 30 Jan 2008 08:56:44 +0000 (UTC)
	(envelope-from os@brain.cc.rsu.ru)
Received: from brain.cc.rsu.ru (localhost [127.0.0.1])
	by brain.cc.rsu.ru (8.14.2/8.14.2) with ESMTP id m0U8I1cn072846
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 30 Jan 2008 11:18:01 +0300 (MSK)
	(envelope-from os@brain.cc.rsu.ru)
Received: (from os@localhost)
	by brain.cc.rsu.ru (8.14.2/8.14.2/Submit) id m0U8I1ew072845;
	Wed, 30 Jan 2008 11:18:01 +0300 (MSK)
	(envelope-from os)
Message-Id: <200801300818.m0U8I1ew072845@brain.cc.rsu.ru>
Date: Wed, 30 Jan 2008 11:18:01 +0300 (MSK)
From: Oleg Sharoiko <os@rsu.ru>
Reply-To: Oleg Sharoiko <os@rsu.ru>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: snd_hda plays sound on all outputs
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         120144
>Category:       kern
>Synopsis:       [snd_hda] snd_hda plays sound on all outputs
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-multimedia
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jan 30 09:00:02 UTC 2008
>Closed-Date:    Wed Jan 07 17:10:52 UTC 2009
>Last-Modified:  Wed Jan 07 17:10:52 UTC 2009
>Originator:     Oleg Sharoiko
>Release:        FreeBSD 7.0-RC1 amd64
>Organization:
Computer Center of Rostov State University
>Environment:
System: FreeBSD brain.cc.rsu.ru 7.0-RC1 FreeBSD 7.0-RC1 #3: Tue Jan 22 17:36:28 MSK 2008 os@brain.cc.rsu.ru:/usr/obj/usr/src/sys/brain.amd64.RELENG_7_0.2008-01-17 amd64


	
>Description:
I've installed FreeBSD 7.0-RC1 on Fujitsu-Siemens Celsius M460. snd_hda
works nice, except it plays sound on all outputs (rear jack, front jack
and internal speaker). Plugging in headphones or external speakers doesn't
mute internal one. I've read about similar issues and have tried all
solutions from
http://lists.freebsd.org/mailman/htdig/freebsd-multimedia/2007-January/005687.html,
but none of them helped me. With hdac.c from
http://people.freebsd.org/~ariff/test/hdac.c there's no messages on jack
insertion/removing and no speaker line in mixer.

I'd greatly appreciate any help.

Here is dmesg of verbose boot:

Calibrating TSC clock ... TSC clock: 2400009561 Hz
CPU: Intel(R) Core(TM)2 Quad CPU    Q6600  @ 2.40GHz (2400.01-MHz
K8-class CPU)
  Origin = "GenuineIntel"  Id = 0x6fb  Stepping = 11

Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>

Features2=0xe3bd<SSE3,RSVD2,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM>
  AMD Features=0x20100800<SYSCALL,NX,LM>
  AMD Features2=0x1<LAHF>
  Cores per package: 4
usable memory = 4284157952 (4085 MB)
Physical memory chunk(s):
0x0000000000001000 - 0x0000000000099fff, 626688 bytes (153 pages)
0x00000000009b8000 - 0x00000000d777bfff, 3604758528 bytes (880068 pages)
0x0000000100000000 - 0x000000011ffeffff, 536805376 bytes (131056 pages)
avail memory  = 4130742272 (3939 MB)
ACPI APIC Table: <PTLTD          APIC  >
INTR: Adding local APIC 1 as a target
INTR: Adding local APIC 2 as a target
INTR: Adding local APIC 3 as a target
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
 cpu2 (AP): APIC ID:  2
 cpu3 (AP): APIC ID:  3
APIC: CPU 0 has ACPI ID 0
APIC: CPU 1 has ACPI ID 1
APIC: CPU 2 has ACPI ID 2
APIC: CPU 3 has ACPI ID 3
ULE: setup cpu group 0
ULE: setup cpu 0
ULE: adding cpu 0 to group 0: cpus 1 mask 0x1
ULE: setup cpu group 1
ULE: setup cpu 1
ULE: adding cpu 1 to group 1: cpus 1 mask 0x2
ULE: setup cpu group 2
ULE: setup cpu 2
ULE: adding cpu 2 to group 2: cpus 1 mask 0x4
ULE: setup cpu group 3
ULE: setup cpu 3
ULE: adding cpu 3 to group 3: cpus 1 mask 0x8
ACPI: RSDP @ 0x0xf7640/0x0014 (v  0 PTLTD )
ACPI: RSDT @ 0x0xdfed37f4/0x0050 (v  1 FSC    PC       0x00060000  LTP
0x00000000)
ACPI: FACP @ 0x0xdfed79ec/0x0074 (v  1 FSC             0x00060000
0x000F4240)
ACPI: DSDT @ 0x0xdfed3844/0x41A8 (v  1 FSC    D2608/A1 0x00060000 MSFT
0x03000001)
ACPI: FACS @ 0x0xdfedafc0/0x0040
ACPI: TCPA @ 0x0xdfed7a60/0x0032 (v  1 Phoeni  x       0x00060000  TL
0x00000000)
ACPI: SSDT @ 0x0xdfed7a92/0x00B6 (v  1 FSC    PST_CPU0 0x00060000  CSF
0x00000001)
ACPI: SSDT @ 0x0xdfed7b48/0x00B6 (v  1 FSC    PST_CPU1 0x00060000  CSF
0x00000001)
ACPI: SSDT @ 0x0xdfed7bfe/0x00B6 (v  1 FSC    PST_CPU2 0x00060000  CSF
0x00000001)
ACPI: SSDT @ 0x0xdfed7cb4/0x00B6 (v  1 FSC    PST_CPU3 0x00060000  CSF
0x00000001)
ACPI: SLIC @ 0x0xdfed7d6a/0x0176 (v  1 FSC    PC       0x00060000  LTP
0x00000000)
ACPI: MCFG @ 0x0xdfed7ee0/0x003C (v  1 PTLTD    MCFG   0x00060000  LTP
0x00000000)
ACPI: HPET @ 0x0xdfed7f1c/0x0038 (v  1 PTLTD  HPETTBL  0x00060000  LTP
0x00000001)
ACPI: APIC @ 0x0xdfed7f54/0x0084 (v  1 PTLTD     APIC   0x00060000  LTP
0x00000000)
ACPI: BOOT @ 0x0xdfed7fd8/0x0028 (v  1 PTLTD  $SBFTBL$ 0x00060000  LTP
0x00000001)
MADT: Found IO APIC ID 4, Interrupt 0 at 0xfec00000
ioapic0: Routing external 8259A's -> intpin 0
lapic0: Routing NMI -> LINT1
lapic0: LINT1 trigger: edge
lapic0: LINT1 polarity: high
lapic1: Routing NMI -> LINT1
lapic1: LINT1 trigger: edge
lapic1: LINT1 polarity: high
lapic2: Routing NMI -> LINT1
lapic2: LINT1 trigger: edge
lapic2: LINT1 polarity: high
lapic3: Routing NMI -> LINT1
lapic3: LINT1 trigger: edge
lapic3: LINT1 polarity: high
MADT: Interrupt override: source 0, irq 2
ioapic0: Routing IRQ 0 -> intpin 2
MADT: Interrupt override: source 9, irq 9
ioapic0: intpin 9 trigger: level
ioapic0 <Version 2.0> irqs 0-23 on motherboard
cpu0 BSP:
     ID: 0x00000000   VER: 0x00050014 LDR: 0x00000000 DFR: 0xffffffff
  lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff
  timer: 0x000100ef therm: 0x00010000 err: 0x00010000 pcm: 0x00010000
snd_unit_init() u=0x00ff8000 [512] d=0x00007c00 [32] c=0x000003ff [1024]
feeder_register: snd_unit=-1 snd_maxautovchans=16 latency=5
feeder_buffersize=16384 feeder_rate_min=1 feeder_rate_max=2016000
feeder_rate_round=25
nfslock: pseudo-device
random: <entropy source, Software, Yarrow>
mem: <memory>
null: <null device, zero device>
io: <I/O>
acpi0: <FSC PC> on motherboard
ioapic0: routing intpin 9 (ISA IRQ 9) to vector 48
acpi0: [MPSAFE]
acpi0: [ITHREAD]
acpi0: Power Button (fixed)
AcpiOsDerivePciId: \\_SB_.PCI0.CMEM -> bus 0 dev 0 func 0
AcpiOsDerivePciId: \\_SB_.PCI0.LPC_.PIRQ -> bus 0 dev 31 func 0
ACPI timer: 1/1 1/1 1/1 1/1 1/1 1/1 1/1 1/1 1/1 1/1 -> 10
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0
pci_link0:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  3 4 7 9 10 11 12 14 15
  Validation          0   11   N     0  3 4 7 9 10 11 12 14 15
  After Disable       0  255   N     0  3 4 7 9 10 11 12 14 15
pci_link1:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0  255   N     0  3 4 7 9 10 11 12 14 15
  Validation          0  255   N     0  3 4 7 9 10 11 12 14 15
  After Disable       0  255   N     0  3 4 7 9 10 11 12 14 15
pci_link2:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0    5   N     0  3 4 7 9 10 11 12 14 15
  Validation          0  255   N     0  3 4 7 9 10 11 12 14 15
  After Disable       0  255   N     0  3 4 7 9 10 11 12 14 15
pci_link3:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  3 4 7 9 10 11 12 14 15
  Validation          0   11   N     0  3 4 7 9 10 11 12 14 15
  After Disable       0  255   N     0  3 4 7 9 10 11 12 14 15
pci_link4:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   10   N     0  3 4 7 9 10 11 12 14 15
  Validation          0   10   N     0  3 4 7 9 10 11 12 14 15
  After Disable       0  255   N     0  3 4 7 9 10 11 12 14 15
pci_link5:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  3 4 7 9 10 11 12 14 15
  Validation          0   11   N     0  3 4 7 9 10 11 12 14 15
  After Disable       0  255   N     0  3 4 7 9 10 11 12 14 15
pci_link6:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  3 4 7 9 10 11 12 14 15
  Validation          0   11   N     0  3 4 7 9 10 11 12 14 15
  After Disable       0  255   N     0  3 4 7 9 10 11 12 14 15
pci_link7:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  3 4 7 9 10 11 12 14 15
  Validation          0   11   N     0  3 4 7 9 10 11 12 14 15
  After Disable       0  255   N     0  3 4 7 9 10 11 12 14 15
acpi_hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on
acpi0
acpi_hpet0: vend: 0x8086 rev: 0x1 num: 1 hz: 14318180 opts: leg_route
count_size
Timecounter "HPET" frequency 14318180 Hz quality 900
cpu0: <ACPI CPU> on acpi0
cpu0: switching to generic Cx mode
est0: <Enhanced SpeedStep Frequency Control> on cpu0
p4tcc0: <CPU Frequency Thermal Control> on cpu0
cpu1: <ACPI CPU> on acpi0
est1: <Enhanced SpeedStep Frequency Control> on cpu1
p4tcc1: <CPU Frequency Thermal Control> on cpu1
cpu2: <ACPI CPU> on acpi0
est2: <Enhanced SpeedStep Frequency Control> on cpu2
p4tcc2: <CPU Frequency Thermal Control> on cpu2
cpu3: <ACPI CPU> on acpi0
est3: <Enhanced SpeedStep Frequency Control> on cpu3
p4tcc3: <CPU Frequency Thermal Control> on cpu3
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pci0: domain=0, physical bus=0
found-> vendor=0x8086, dev=0x29e0, revid=0x00
        domain=0, bus=0, slot=0, func=0
        class=06-00-00, hdrtype=0x00, mfdev=0
        cmdreg=0x0106, statreg=0x2090, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x8086, dev=0x29e1, revid=0x00
        domain=0, bus=0, slot=1, func=0
        class=06-04-00, hdrtype=0x01, mfdev=0
        cmdreg=0x0107, statreg=0x0010, cachelnsz=8 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x0c (3000 ns), maxlat=0x00 (0 ns)
        intpin=a, irq=11
        powerspec 3  supports D0 D3  current D0
        MSI supports 1 message
pcib0: matched entry for 0.1.INTA
pcib0: slot 1 INTA hardwired to IRQ 16
found-> vendor=0x8086, dev=0x29e9, revid=0x00
        domain=0, bus=0, slot=6, func=0
        class=06-04-00, hdrtype=0x01, mfdev=0
        cmdreg=0x0100, statreg=0x0010, cachelnsz=8 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=a, irq=11
        powerspec 3  supports D0 D3  current D0
        MSI supports 1 message
pcib0: matched entry for 0.6.INTA
pcib0: slot 6 INTA hardwired to IRQ 16
found-> vendor=0x8086, dev=0x10bd, revid=0x02
        domain=0, bus=0, slot=25, func=0
        class=02-00-00, hdrtype=0x00, mfdev=0
        cmdreg=0x0107, statreg=0x0010, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=a, irq=5
        powerspec 2  supports D0 D3  current D0
        MSI supports 1 message, 64 bit
        map[10]: type Memory, range 32, base 0xf2300000, size 17, enabled
        map[14]: type Memory, range 32, base 0xf2324000, size 12, enabled
        map[18]: type I/O Port, range 32, base 0x1820, size  5, enabled
pcib0: matched entry for 0.25.INTA
pcib0: slot 25 INTA hardwired to IRQ 18
found-> vendor=0x8086, dev=0x2937, revid=0x02
        domain=0, bus=0, slot=26, func=0
        class=0c-03-00, hdrtype=0x00, mfdev=1
        cmdreg=0x0005, statreg=0x0290, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=a, irq=10
        map[20]: type I/O Port, range 32, base 0x1840, size  5, enabled
pcib0: matched entry for 0.26.INTA
pcib0: slot 26 INTA hardwired to IRQ 20
found-> vendor=0x8086, dev=0x2938, revid=0x02
        domain=0, bus=0, slot=26, func=1
        class=0c-03-00, hdrtype=0x00, mfdev=0
        cmdreg=0x0005, statreg=0x0290, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=b, irq=5
        map[20]: type I/O Port, range 32, base 0x1860, size  5, enabled
pcib0: matched entry for 0.26.INTB
pcib0: slot 26 INTB hardwired to IRQ 18
found-> vendor=0x8086, dev=0x2939, revid=0x02
        domain=0, bus=0, slot=26, func=2
        class=0c-03-00, hdrtype=0x00, mfdev=0
        cmdreg=0x0005, statreg=0x0290, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=c, irq=11
        map[20]: type I/O Port, range 32, base 0x1880, size  5, enabled
pcib0: matched entry for 0.26.INTC
pcib0: slot 26 INTC hardwired to IRQ 19
found-> vendor=0x8086, dev=0x293c, revid=0x02
        domain=0, bus=0, slot=26, func=7
        class=0c-03-20, hdrtype=0x00, mfdev=0
        cmdreg=0x0106, statreg=0x0290, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=b, irq=5
        powerspec 2  supports D0 D3  current D0
        map[10]: type Memory, range 32, base 0xf2326000, size 10, enabled
pcib0: matched entry for 0.26.INTB
pcib0: slot 26 INTB hardwired to IRQ 18
found-> vendor=0x8086, dev=0x293e, revid=0x02
        domain=0, bus=0, slot=27, func=0
        class=04-03-00, hdrtype=0x00, mfdev=0
        cmdreg=0x0106, statreg=0x0010, cachelnsz=8 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=a, irq=10
        powerspec 2  supports D0 D3  current D0
        MSI supports 1 message, 64 bit
        map[10]: type Memory, range 64, base 0xf2320000, size 14, enabled
pcib0: matched entry for 0.27.INTA
pcib0: slot 27 INTA hardwired to IRQ 20
found-> vendor=0x8086, dev=0x2940, revid=0x02
        domain=0, bus=0, slot=28, func=0
        class=06-04-00, hdrtype=0x01, mfdev=1
        cmdreg=0x0000, statreg=0x0010, cachelnsz=8 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=a, irq=10
        powerspec 2  supports D0 D3  current D0
        MSI supports 1 message
pcib0: matched entry for 0.28.INTA
pcib0: slot 28 INTA hardwired to IRQ 23
found-> vendor=0x8086, dev=0x2948, revid=0x02
        domain=0, bus=0, slot=28, func=4
        class=06-04-00, hdrtype=0x01, mfdev=1
        cmdreg=0x0000, statreg=0x0010, cachelnsz=8 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=b, irq=11
        powerspec 2  supports D0 D3  current D0
        MSI supports 1 message
pcib0: matched entry for 0.28.INTB
pcib0: slot 28 INTB hardwired to IRQ 22
found-> vendor=0x8086, dev=0x2934, revid=0x02
        domain=0, bus=0, slot=29, func=0
        class=0c-03-00, hdrtype=0x00, mfdev=1
        cmdreg=0x0005, statreg=0x0290, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=a, irq=11
        map[20]: type I/O Port, range 32, base 0x18a0, size  5, enabled
pcib0: matched entry for 0.29.INTA
pcib0: slot 29 INTA hardwired to IRQ 23
found-> vendor=0x8086, dev=0x2935, revid=0x02
        domain=0, bus=0, slot=29, func=1
        class=0c-03-00, hdrtype=0x00, mfdev=0
        cmdreg=0x0005, statreg=0x0290, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=b, irq=11
        map[20]: type I/O Port, range 32, base 0x18c0, size  5, enabled
pcib0: matched entry for 0.29.INTB
pcib0: slot 29 INTB hardwired to IRQ 22
found-> vendor=0x8086, dev=0x2936, revid=0x02
        domain=0, bus=0, slot=29, func=2
        class=0c-03-00, hdrtype=0x00, mfdev=0
        cmdreg=0x0005, statreg=0x0290, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=c, irq=11
        map[20]: type I/O Port, range 32, base 0x18e0, size  5, enabled
pcib0: matched entry for 0.29.INTC
pcib0: slot 29 INTC hardwired to IRQ 21
found-> vendor=0x8086, dev=0x293a, revid=0x02
        domain=0, bus=0, slot=29, func=7
        class=0c-03-20, hdrtype=0x00, mfdev=0
        cmdreg=0x0106, statreg=0x0290, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=a, irq=11
        powerspec 2  supports D0 D3  current D0
        map[10]: type Memory, range 32, base 0xf2326400, size 10, enabled
pcib0: matched entry for 0.29.INTA
pcib0: slot 29 INTA hardwired to IRQ 23
found-> vendor=0x8086, dev=0x244e, revid=0x92
        domain=0, bus=0, slot=30, func=0
        class=06-04-01, hdrtype=0x01, mfdev=0
        cmdreg=0x0107, statreg=0x0010, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x04 (1000 ns), maxlat=0x00 (0 ns)
found-> vendor=0x8086, dev=0x2916, revid=0x02
        domain=0, bus=0, slot=31, func=0
        class=06-01-00, hdrtype=0x00, mfdev=1
        cmdreg=0x0007, statreg=0x0210, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found-> vendor=0x8086, dev=0x2920, revid=0x02
        domain=0, bus=0, slot=31, func=2
        class=01-01-8a, hdrtype=0x00, mfdev=0
        cmdreg=0x0007, statreg=0x02b0, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=b, irq=255
        powerspec 3  supports D0 D3  current D0
        map[20]: type I/O Port, range 32, base 0x1c30, size  4, enabled
        map[24]: type I/O Port, range 32, base 0x1c20, size  4, enabled
found-> vendor=0x8086, dev=0x2930, revid=0x02
        domain=0, bus=0, slot=31, func=3
        class=0c-05-00, hdrtype=0x00, mfdev=0
        cmdreg=0x0103, statreg=0x0280, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=b, irq=11
        map[10]: type Memory, range 64, base 0xf2326800, size  8, enabled
        map[20]: type I/O Port, range 32, base 0x1c00, size  5, enabled
pcib0: matched entry for 0.31.INTB
pcib0: slot 31 INTB hardwired to IRQ 19
found-> vendor=0x8086, dev=0x2926, revid=0x02
        domain=0, bus=0, slot=31, func=5
        class=01-01-85, hdrtype=0x00, mfdev=0
        cmdreg=0x0007, statreg=0x02b0, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=c, irq=11
        powerspec 3  supports D0 D3  current D0
        map[10]: type I/O Port, range 32, base 0x1c88, size  3, enabled
        map[14]: type I/O Port, range 32, base 0x1c7c, size  2, enabled
        map[18]: type I/O Port, range 32, base 0x1c80, size  3, enabled
        map[1c]: type I/O Port, range 32, base 0x1c78, size  2, enabled
        map[20]: type I/O Port, range 32, base 0x1c50, size  4, enabled
        map[24]: type I/O Port, range 32, base 0x1c40, size  4, enabled
pcib0: matched entry for 0.31.INTC
pcib0: slot 31 INTC hardwired to IRQ 22
found-> vendor=0x8086, dev=0x2932, revid=0x02
        domain=0, bus=0, slot=31, func=6
        class=11-80-00, hdrtype=0x00, mfdev=0
        cmdreg=0x0002, statreg=0x0010, cachelnsz=0 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=a, irq=5
        powerspec 3  supports D0 D3  current D0
        map[10]: type Memory, range 64, base 0xf2325000, size 12, enabled
pcib0: matched entry for 0.31.INTA
pcib0: slot 31 INTA hardwired to IRQ 18
pcib1: <ACPI PCI-PCI bridge> irq 16 at device 1.0 on pci0
pcib1:   domain            0
pcib1:   secondary bus     1
pcib1:   subordinate bus   1
pcib1:   I/O decode        0xf000-0xfff
pcib1:   memory decode     0xf0000000-0xf1ffffff
pcib1:   prefetched decode 0xe0000000-0xefffffff
pci1: <ACPI PCI bus> on pcib1
pci1: domain=0, physical bus=1
found-> vendor=0x10de, dev=0x01d3, revid=0xa1
        domain=0, bus=1, slot=0, func=0
        class=03-00-00, hdrtype=0x00, mfdev=0
        cmdreg=0x0107, statreg=0x0010, cachelnsz=8 (dwords)
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
        intpin=a, irq=11
        powerspec 2  supports D0 D3  current D0
        MSI supports 1 message, 64 bit
        map[10]: type Memory, range 32, base 0xf1000000, size 24, enabled
pcib1: requested memory range 0xf1000000-0xf1ffffff: good
        map[14]: type Prefetchable Memory, range 64, base 0xe0000000, size 28,
enabled
pcib1: requested memory range 0xe0000000-0xefffffff: good
        map[1c]: type Memory, range 64, base 0xf0000000, size 24, enabled
pcib1: requested memory range 0xf0000000-0xf0ffffff: good
pcib1: matched entry for 1.0.INTA
pcib1: slot 0 INTA hardwired to IRQ 16
vgapci0: <VGA-compatible display> mem
0xf1000000-0xf1ffffff,0xe0000000-0xefffffff,0xf0000000-0xf0ffffff irq 16
at device 0.0 on pci1
pcib2: <ACPI PCI-PCI bridge> irq 16 at device 6.0 on pci0
pcib2:   domain            0
pcib2:   secondary bus     2
pcib2:   subordinate bus   2
pcib2:   I/O decode        0x0-0x0
pcib2:   no prefetched decode
pci2: <ACPI PCI bus> on pcib2
pci2: domain=0, physical bus=2
em0: <Intel(R) PRO/1000 Network Connection Version - 6.7.3> port
0x1820-0x183f mem 0xf2300000-0xf231ffff,0xf2324000-0xf2324fff irq 18 at
device 25.0 on pci0
em0: Reserved 0x20000 bytes for rid 0x10 type 3 at 0xf2300000
em0: attempting to allocate 1 MSI vectors (1 supported)
msi: routing MSI IRQ 256 to vector 49
em0: using IRQ 256 for MSI
em0: Using MSI interrupt
em0: Reserved 0x1000 bytes for rid 0x14 type 3 at 0xf2324000
em0: bpf attached
em0: Ethernet address: 00:19:99:17:0e:54
em0: [FILTER]
uhci0: <UHCI (generic) USB controller> port 0x1840-0x185f irq 20 at
device 26.0 on pci0
uhci0: Reserved 0x20 bytes for rid 0x20 type 4 at 0x1840
ioapic0: routing intpin 20 (PCI IRQ 20) to vector 50
uhci0: [GIANT-LOCKED]
uhci0: [ITHREAD]
usb0: <UHCI (generic) USB controller> on uhci0
usb0: USB revision 1.0
uhub0: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb0
uhub0: 2 ports with 2 removable, self powered
uhci1: <UHCI (generic) USB controller> port 0x1860-0x187f irq 18 at
device 26.1 on pci0
uhci1: Reserved 0x20 bytes for rid 0x20 type 4 at 0x1860
ioapic0: routing intpin 18 (PCI IRQ 18) to vector 51
uhci1: [GIANT-LOCKED]
uhci1: [ITHREAD]
usb1: <UHCI (generic) USB controller> on uhci1
usb1: USB revision 1.0
uhub1: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb1
uhub1: 2 ports with 2 removable, self powered
uhci2: <UHCI (generic) USB controller> port 0x1880-0x189f irq 19 at
device 26.2 on pci0
uhci2: Reserved 0x20 bytes for rid 0x20 type 4 at 0x1880
ioapic0: routing intpin 19 (PCI IRQ 19) to vector 52
uhci2: [GIANT-LOCKED]
uhci2: [ITHREAD]
usb2: <UHCI (generic) USB controller> on uhci2
usb2: USB revision 1.0
uhub2: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb2
uhub2: 2 ports with 2 removable, self powered
ehci0: <EHCI (generic) USB 2.0 controller> mem 0xf2326000-0xf23263ff irq
18 at device 26.7 on pci0
ehci0: Reserved 0x400 bytes for rid 0x10 type 3 at 0xf2326000
ehci0: [GIANT-LOCKED]
ehci0: [ITHREAD]
usb3: EHCI version 1.0
usb3: companion controllers, 2 ports each: usb0 usb1 usb2
usb3: <EHCI (generic) USB 2.0 controller> on ehci0
usb3: USB revision 2.0
uhub3: <Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1> on usb3
uhub3: 6 ports with 6 removable, self powered
uhub4: <vendor 0x04b4 product 0x6560, class 9/0, rev 2.00/0.0b, addr 2>
on uhub3
uhub4: multiple transaction translators
uhub4: 4 ports with 4 removable, self powered
pcm0: <Intel 82801I High Definition Audio Controller> mem
0xf2320000-0xf2323fff irq 20 at device 27.0 on pci0
pcm0: TCSEL: 0x07 -> 0x00
pcm0: DMA Coherency: Uncacheable / vendor=0x8086
pcm0: Reserved 0x4000 bytes for rid 0x10 type 3 at 0xf2320000
pcm0: [MPSAFE]
pcm0: [ITHREAD]
pcm0: hdac_dma_alloc: size=1024 -> roundsz=1024
pcm0: hdac_dma_alloc: size=2048 -> roundsz=2048
pcib3: <ACPI PCI-PCI bridge> irq 23 at device 28.0 on pci0
pcib3:   domain            0
pcib3:   secondary bus     3
pcib3:   subordinate bus   3
pcib3:   I/O decode        0x0-0x0
pcib3:   no prefetched decode
pci3: <ACPI PCI bus> on pcib3
pci3: domain=0, physical bus=3
pcib4: <ACPI PCI-PCI bridge> irq 22 at device 28.4 on pci0
pcib4:   domain            0
pcib4:   secondary bus     4
pcib4:   subordinate bus   4
pcib4:   I/O decode        0x0-0x0
pcib4:   no prefetched decode
pci4: <ACPI PCI bus> on pcib4
pci4: domain=0, physical bus=4
uhci3: <UHCI (generic) USB controller> port 0x18a0-0x18bf irq 23 at
device 29.0 on pci0
uhci3: Reserved 0x20 bytes for rid 0x20 type 4 at 0x18a0
ioapic0: routing intpin 23 (PCI IRQ 23) to vector 53
uhci3: [GIANT-LOCKED]
uhci3: [ITHREAD]
usb4: <UHCI (generic) USB controller> on uhci3
usb4: USB revision 1.0
uhub5: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb4
uhub5: 2 ports with 2 removable, self powered
uhci4: <UHCI (generic) USB controller> port 0x18c0-0x18df irq 22 at
device 29.1 on pci0
uhci4: Reserved 0x20 bytes for rid 0x20 type 4 at 0x18c0
ioapic0: routing intpin 22 (PCI IRQ 22) to vector 54
uhci4: [GIANT-LOCKED]
uhci4: [ITHREAD]
usb5: <UHCI (generic) USB controller> on uhci4
usb5: USB revision 1.0
uhub6: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb5
uhub6: 2 ports with 2 removable, self powered
uhci5: <UHCI (generic) USB controller> port 0x18e0-0x18ff irq 21 at
device 29.2 on pci0
uhci5: Reserved 0x20 bytes for rid 0x20 type 4 at 0x18e0
ioapic0: routing intpin 21 (PCI IRQ 21) to vector 55
uhci5: [GIANT-LOCKED]
uhci5: [ITHREAD]
usb6: <UHCI (generic) USB controller> on uhci5
usb6: USB revision 1.0
uhub7: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb6
uhub7: 2 ports with 2 removable, self powered
ehci1: <EHCI (generic) USB 2.0 controller> mem 0xf2326400-0xf23267ff irq
23 at device 29.7 on pci0
ehci1: Reserved 0x400 bytes for rid 0x10 type 3 at 0xf2326400
ehci1: [GIANT-LOCKED]
ehci1: [ITHREAD]
usb7: EHCI version 1.0
usb7: companion controllers, 2 ports each: usb4 usb5 usb6
usb7: <EHCI (generic) USB 2.0 controller> on ehci1
usb7: USB revision 2.0
uhub8: <Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1> on usb7
uhub8: 6 ports with 6 removable, self powered
pcib5: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pcib5:   domain            0
pcib5:   secondary bus     5
pcib5:   subordinate bus   5
pcib5:   I/O decode        0xf000-0xfff
pcib5:   memory decode     0xf2000000-0xf20fffff
pcib5:   no prefetched decode
pcib5:   Subtractively decoded bridge.
pci5: <ACPI PCI bus> on pcib5
pci5: domain=0, physical bus=5
found-> vendor=0x11c1, dev=0x5811, revid=0x70
        domain=0, bus=5, slot=6, func=0
        class=0c-00-10, hdrtype=0x00, mfdev=0
        cmdreg=0x0316, statreg=0x0290, cachelnsz=8 (dwords)
        lattimer=0x60 (2880 ns), mingnt=0x0c (3000 ns), maxlat=0x18 (6000 ns)
        intpin=a, irq=10
        powerspec 2  supports D0 D1 D2 D3  current D0
        map[10]: type Memory, range 32, base 0xf2000000, size 12, enabled
pcib5: requested memory range 0xf2000000-0xf2000fff: good
pcib5: matched entry for 5.6.INTA
pcib5: slot 6 INTA hardwired to IRQ 20
pci5: <serial bus, FireWire> at device 6.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH9 SATA300 controller> port
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x1c30-0x1c3f,0x1c20-0x1c2f at
device 31.2 on pci0
atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0x1c30
atapci0: Reserved 0x10 bytes for rid 0x24 type 4 at 0x1c20
ata0: <ATA channel 0> on atapci0
atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0x1f0
atapci0: Reserved 0x1 bytes for rid 0x14 type 4 at 0x3f6
ata0: reset tp1 mask=03 ostat0=50 ostat1=00
ata0: stat0=0x50 err=0x01 lsb=0x00 msb=0x00
ata0: stat1=0x00 err=0x01 lsb=0x14 msb=0xeb
ata0: reset tp2 stat0=50 stat1=00 devices=0x9<ATAPI_SLAVE,ATA_MASTER>
ioapic0: routing intpin 14 (ISA IRQ 14) to vector 56
ata0: [MPSAFE]
ata0: [ITHREAD]
ata1: <ATA channel 1> on atapci0
atapci0: Reserved 0x8 bytes for rid 0x18 type 4 at 0x170
atapci0: Reserved 0x1 bytes for rid 0x1c type 4 at 0x376
ata1: reset tp1 mask=03 ostat0=50 ostat1=00
ata1: stat0=0x50 err=0x01 lsb=0x00 msb=0x00
ata1: stat1=0x00 err=0x01 lsb=0x00 msb=0x00
ata1: reset tp2 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
ioapic0: routing intpin 15 (ISA IRQ 15) to vector 57
ata1: [MPSAFE]
ata1: [ITHREAD]
ichsmb0: <SMBus controller> port 0x1c00-0x1c1f mem 0xf2326800-0xf23268ff
irq 19 at device 31.3 on pci0
ichsmb0: Reserved 0x20 bytes for rid 0x20 type 4 at 0x1c00
ichsmb0: [GIANT-LOCKED]
ichsmb0: [ITHREAD]
smbus0: <System Management Bus> on ichsmb0
atapci1: <Intel ICH9 SATA300 controller> port
0x1c88-0x1c8f,0x1c7c-0x1c7f,0x1c80-0x1c87,0x1c78-0x1c7b,0x1c50-0x1c5f,0x1c40-0x1c4f irq 22 at device 31.5 on pci0
atapci1: Reserved 0x10 bytes for rid 0x20 type 4 at 0x1c50
atapci1: [MPSAFE]
atapci1: [ITHREAD]
atapci1: Reserved 0x10 bytes for rid 0x24 type 4 at 0x1c40
ata2: <ATA channel 0> on atapci1
atapci1: Reserved 0x8 bytes for rid 0x10 type 4 at 0x1c88
atapci1: Reserved 0x4 bytes for rid 0x14 type 4 at 0x1c7c
ata2: reset tp1 mask=03 ostat0=50 ostat1=00
ata2: stat0=0x50 err=0x01 lsb=0x00 msb=0x00
ata2: stat1=0x00 err=0x01 lsb=0x00 msb=0x00
ata2: reset tp2 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
ata2: [MPSAFE]
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci1
atapci1: Reserved 0x8 bytes for rid 0x18 type 4 at 0x1c80
atapci1: Reserved 0x4 bytes for rid 0x1c type 4 at 0x1c78
ata3: reset tp1 mask=03 ostat0=7f ostat1=7f
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat0=0x7f err=0xff lsb=0xff msb=0xff
ata3: stat1=0x7f err=0xff lsb=0xff msb=0xff
ata3: reset tp2 stat0=ff stat1=ff devices=0x0
ata3: [MPSAFE]
ata3: [ITHREAD]
pci0: <dasp> at device 31.6 (no driver attached)
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
atkbd: the current kbd controller command byte 0047
atkbd: keyboard ID 0x41ab (2)
kbd0: atkbd0, AT 101/102 (2), config:0x0, flags:0x3d0000
ioapic0: routing intpin 1 (ISA IRQ 1) to vector 58
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
psm0: unable to allocate IRQ
psmcpnp0: <PS/2 mouse port> port 0x60,0x64 irq 12 on acpi0
psm0: current command byte:0047
psm0: failed to reset the aux device.
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 on acpi0
ioapic0: routing intpin 4 (ISA IRQ 4) to vector 59
uart0: [FILTER]
uart0: fast interrupt
atkbdc: atkbdc0 already exists; skipping it
sc: sc0 already exists; skipping it
vga: vga0 already exists; skipping it
isa_probe_children: disabling PnP devices
isa_probe_children: probing non-PnP devices
orm0: <ISA Option ROM> at iomem 0xce800-0xcf7ff on isa0
fdc0 failed to probe at port 0x3f0 irq 6 drq 2 on isa0
ppc0 failed to probe at irq 7 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sc0: fb0, kbd0, terminal emulator: sc (syscons terminal)
sio0 failed to probe at port 0x3f8 irq 4 on isa0
sio1 failed to probe at port 0x2f8 irq 3 on isa0
sio2: not probed (disabled)
sio3: not probed (disabled)
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on
isa0
isa_probe_children: probing PnP devices
ums0: <Logitech USB Receiver, class 0/0, rev 1.10/9.10, addr 2> on uhub0
ums0: 5 buttons and Z dir.
Device configuration finished.
Reducing kern.maxvnodes 238312 -> 100000
lapic: Divisor 2, Frequency 133333872 hz
Timecounter "TSC" frequency 2400009561 Hz quality -100
Timecounters tick every 10.000 msec
Linux ELF exec handler installed
lo0: bpf attached
ata0-slave: pio=PIO4 wdma=WDMA2 udma=UDMA33 cable=40 wire
ata0-master: pio=PIO4 wdma=WDMA2 udma=UDMA133 cable=40 wire
ad0: 476940MB <Seagate ST3500630AS 3.AAD> at ata0-master SATA300
ad0: 976773168 sectors [969021C/16H/63S] 16 sectors/interrupt 1 depth
queue
GEOM: new disk ad0
acd0: <Optiarc DVD RW AD-7170S/1.82> DVDR drive at ata0 as slave
acd0: read 8268KB/s (8268KB/s) write 8268KB/s (8268KB/s), 2048KB buffer,
SATA150
acd0: Reads: CDR, CDRW, CDDA stream, DVDROM, DVDR, DVDRAM, packet
acd0: Writes: CDR, CDRW, DVDR, DVDRAM, test write, burnproof
acd0: Audio: play, 256 volume levels
acd0: Mechanism: ejectable tray, unlocked
acd0: Medium: no/blank disc
ata1-master: pio=PIO4 wdma=WDMA2 udma=UDMA133 cable=40 wire
ad1: 476940MB <Seagate ST3500630AS 3.AAD> at ata1-master SATA300
ad1: 976773168 sectors [969021C/16H/63S] 16 sectors/interrupt 1 depth
queue
ata2-master: pio=PIO4 wdma=WDMA2 udma=UDMA133 cable=40 wire
ad2: 476940MB <Seagate ST3500630AS 3.AAD> at ata2-master SATA300
ad2: 976773168 sectors [969021C/16H/63S] 16 sectors/interrupt 1 depth
queue
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...
GEOM: new disk ad1
GEOM: new disk ad2
pcm0: HDA_DEBUG: Scanning HDA codecs [start index=0] ...
pcm0: HDA_DEBUG: Probing codec: 2
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=2
pcm0:        Vendor: 0x000010ec
pcm0:        Device: 0x00000262
pcm0:      Revision: 0x00000002
pcm0:      Stepping: 0x00000002
pcm0: PCI Subvendor: 0x10ff1734
pcm0:         Nodes: start=2 endnode=37 total=35
pcm0:     CORB size: 256
pcm0:     RIRB size: 256
pcm0:       Streams: ISS=4 OSS=4 BSS=0
pcm0:          GPIO: 0x40000004
pcm0:                NumGPIO=4 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=1
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=7 entries=1 found=1
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=8 entries=1 found=1
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=9 entries=1 found=1
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=10 entries=1 found=1
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=11 entries=8 found=8
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=12 entries=2 found=2
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=13 entries=2 found=2
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=14 entries=2 found=2
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=20 entries=2 found=2
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=21 entries=2 found=2
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=22 entries=1 found=1
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=24 entries=2 found=2
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=25 entries=2 found=2
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=26 entries=2 found=2
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=27 entries=2 found=2
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=30 entries=1 found=1
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=34 entries=10
found=10
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=35 entries=9 found=9
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=36 entries=9 found=9
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 5 DAC path using HDA_PARSE_MIXER strategy.
pcm0: HDA_DEBUG: AFG commit...
pcm0: HDA_DEBUG: Ctls commit...
pcm0: [ 7] Ctl nid=11 childnid=27 Bind to NONE
pcm0: [ 8] Ctl nid=11 childnid=28 DISABLED
pcm0: [ 9] Ctl nid=11 childnid=29 DISABLED
pcm0: [10] Ctl nid=11 childnid=20 Bind to NONE
pcm0: [11] Ctl nid=11 childnid=21 DISABLED
pcm0: [12] Ctl nid=12 Bind to NONE
pcm0: [14] Ctl nid=12 childnid=11 Bind to NONE
pcm0: [15] Ctl nid=13 Bind to NONE
pcm0: [17] Ctl nid=13 childnid=11 Bind to NONE
pcm0: [18] Ctl nid=14 Bind to NONE
pcm0: [20] Ctl nid=14 childnid=11 Bind to NONE
pcm0: [21] Ctl nid=20 Bind to NONE
pcm0: [22] Ctl nid=20 Bind to NONE
pcm0: [23] Ctl nid=21 DISABLED
pcm0: [24] Ctl nid=21 DISABLED
pcm0: [25] Ctl nid=22 Bind to NONE
pcm0: [26] Ctl nid=24 Bind to NONE
pcm0: [27] Ctl nid=24 Bind to NONE
pcm0: [28] Ctl nid=25 Bind to NONE
pcm0: [29] Ctl nid=25 Bind to NONE
pcm0: [30] Ctl nid=26 Bind to NONE
pcm0: [31] Ctl nid=26 Bind to NONE
pcm0: [32] Ctl nid=27 Bind to NONE
pcm0: [33] Ctl nid=27 Bind to NONE
pcm0: [34] Ctl nid=35 childnid=24 Bind to NONE
pcm0: [35] Ctl nid=35 childnid=25 Bind to NONE
pcm0: [36] Ctl nid=35 childnid=26 Bind to NONE
pcm0: [37] Ctl nid=35 childnid=27 Bind to NONE
pcm0: [38] Ctl nid=35 childnid=28 DISABLED
pcm0: [39] Ctl nid=35 childnid=29 DISABLED
pcm0: [40] Ctl nid=35 childnid=20 Bind to NONE
pcm0: [41] Ctl nid=35 childnid=21 DISABLED
pcm0: [42] Ctl nid=35 childnid=11 Bind to NONE
pcm0: [43] Ctl nid=36 childnid=24 Bind to NONE
pcm0: [44] Ctl nid=36 childnid=25 Bind to NONE
pcm0: [45] Ctl nid=36 childnid=26 Bind to NONE
pcm0: [46] Ctl nid=36 childnid=27 Bind to NONE
pcm0: [47] Ctl nid=36 childnid=28 DISABLED
pcm0: [48] Ctl nid=36 childnid=29 DISABLED
pcm0: [49] Ctl nid=36 childnid=20 Bind to NONE
pcm0: [50] Ctl nid=36 childnid=21 DISABLED
pcm0: [51] Ctl nid=36 childnid=11 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 "line":
pcm0: Mixer "mic":
pcm0: Mixer "rec":
pcm0: Soft PCM mixer ENABLED
pcm0: HDA_DEBUG: Registering PCM channels...
pcm0: clone manager: deadline=750ms flags=0x8000001e
pcm0: hdac_dma_alloc: size=4096 -> roundsz=4096
pcm0: sndbuf_setmap 3440000, 4000; 0xffffffffae04a000 -> 3440000
pcm0: hdac_dma_alloc: size=4096 -> roundsz=4096
pcm0: sndbuf_setmap 3448000, 4000; 0xffffffffae04e000 -> 3448000
pcm0: <HDA Codec: Realtek ALC262>
pcm0: <HDA Codec ID: 0x10ec0262>
pcm0: <HDA Driver Revision: 20071129_0050>
pcm0: 
pcm0: HDA config/quirks: forcestereo ivref50 ivref80 ivref100 ivref
pcm0: 
pcm0: +-------------------+
pcm0: | DUMPING HDA NODES |
pcm0: +-------------------+
pcm0: 
pcm0: Default Parameter
pcm0: -----------------
pcm0:      Stream cap: 0x00000001
pcm0:          Format: PCM
pcm0:         PCM cap: 0x000e0560
pcm0:        PCM size: 16 20 24
pcm0:        PCM rate: 44 48 96 192
pcm0:          IN amp: 0x00000000
pcm0:         OUT amp: 0x00000000
pcm0: 
pcm0:             nid: 2 [ANALOG]
pcm0:            name: audio output
pcm0:      widget_cap: 0x00000011
pcm0:     Parse flags: 0x00000001
pcm0:       Ctl flags: 0x00000011
pcm0:      Stream cap: 0x00000001
pcm0:          Format: PCM
pcm0:         PCM cap: 0x000e0560
pcm0:        PCM size: 16 20 24
pcm0:        PCM rate: 44 48 96 192
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 3 [ANALOG]
pcm0:            name: audio output
pcm0:      widget_cap: 0x00000011
pcm0:     Parse flags: 0x00000001
pcm0:       Ctl flags: 0x00000011
pcm0:      Stream cap: 0x00000001
pcm0:          Format: PCM
pcm0:         PCM cap: 0x000e0560
pcm0:        PCM size: 16 20 24
pcm0:        PCM rate: 44 48 96 192
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 4 [ANALOG]
pcm0:            name: vendor widget
pcm0:      widget_cap: 0x00f00000
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 5 [ANALOG]
pcm0:            name: vendor widget
pcm0:      widget_cap: 0x00f00000
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 6 [DIGITAL] [DISABLED]
pcm0:            name: audio output
pcm0:      widget_cap: 0x00000211
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:      Stream cap: 0x00000001
pcm0:          Format: PCM
pcm0:         PCM cap: 0x001e0560
pcm0:        PCM size: 16 20 24 32
pcm0:        PCM rate: 44 48 96 192
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 7 [ANALOG]
pcm0:            name: audio input
pcm0:      widget_cap: 0x0010011b
pcm0:     Parse flags: 0x00000002
pcm0:       Ctl flags: 0x00000800
pcm0:      Stream cap: 0x00000001
pcm0:          Format: PCM
pcm0:         PCM cap: 0x00060160
pcm0:        PCM size: 16 20
pcm0:        PCM rate: 44 48 96
pcm0:       Input amp: 0x80051f08
pcm0:                  mute=1 step=31 size=5 offset=8
pcm0:     connections: 1
pcm0:           |
pcm0:           + <- nid=36 [audio mixer]
pcm0: 
pcm0:             nid: 8 [ANALOG]
pcm0:            name: audio input
pcm0:      widget_cap: 0x0010011b
pcm0:     Parse flags: 0x00000002
pcm0:       Ctl flags: 0x00000800
pcm0:      Stream cap: 0x00000001
pcm0:          Format: PCM
pcm0:         PCM cap: 0x00060160
pcm0:        PCM size: 16 20
pcm0:        PCM rate: 44 48 96
pcm0:       Input amp: 0x80051f08
pcm0:                  mute=1 step=31 size=5 offset=8
pcm0:     connections: 1
pcm0:           |
pcm0:           + <- nid=35 [audio mixer]
pcm0: 
pcm0:             nid: 9 [ANALOG]
pcm0:            name: audio input
pcm0:      widget_cap: 0x0010011b
pcm0:     Parse flags: 0x00000002
pcm0:       Ctl flags: 0x00000800
pcm0:      Stream cap: 0x00000001
pcm0:          Format: PCM
pcm0:         PCM cap: 0x00060160
pcm0:        PCM size: 16 20
pcm0:        PCM rate: 44 48 96
pcm0:       Input amp: 0x80051f08
pcm0:                  mute=1 step=31 size=5 offset=8
pcm0:     connections: 1
pcm0:           |
pcm0:           + <- nid=34 [audio selector]
pcm0: 
pcm0:             nid: 10 [DIGITAL] [DISABLED]
pcm0:            name: audio input
pcm0:      widget_cap: 0x00100391
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:      Stream cap: 0x00000001
pcm0:          Format: PCM
pcm0:         PCM cap: 0x001e0560
pcm0:        PCM size: 16 20 24 32
pcm0:        PCM rate: 44 48 96 192
pcm0:     connections: 1
pcm0:           |
pcm0:           + <- nid=31 [pin: speaker (none)] [DISABLED]
pcm0: 
pcm0:             nid: 11 [ANALOG]
pcm0:            name: audio mixer
pcm0:      widget_cap: 0x0020010b
pcm0:     Parse flags: 0x00000002
pcm0:       Ctl flags: 0x000000c1
pcm0:       Input amp: 0x80051f17
pcm0:                  mute=1 step=31 size=5 offset=23
pcm0:     connections: 8
pcm0:           |
pcm0:           + <- nid=24 [pin: Mic in (jack)]
pcm0:           |
pcm0:           + <- nid=25 [pin: Mic in (jack)]
pcm0:           |
pcm0:           + <- nid=26 [pin: line in (jack)]
pcm0:           |
pcm0:           + <- nid=27 [pin: headphones out (jack)]
pcm0:           |
pcm0:           + <- nid=28 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=29 [pin: line out (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=20 [pin: line out (jack)]
pcm0:           |
pcm0:           + <- nid=21 [pin: speaker (none)] [DISABLED]
pcm0: 
pcm0:             nid: 12 [ANALOG]
pcm0:            name: audio mixer
pcm0:      widget_cap: 0x0020010f
pcm0:     Parse flags: 0x00000001
pcm0:       Ctl flags: 0x000000d1
pcm0:      Output amp: 0x00051f1f
pcm0:                  mute=0 step=31 size=5 offset=31
pcm0:       Input amp: 0x80000000
pcm0:                  mute=1 step=0 size=0 offset=0
pcm0:     connections: 2
pcm0:           |
pcm0:           + <- nid=2 [audio output]
pcm0:           |
pcm0:           + <- nid=11 [audio mixer]
pcm0: 
pcm0:             nid: 13 [ANALOG]
pcm0:            name: audio mixer
pcm0:      widget_cap: 0x0020010f
pcm0:     Parse flags: 0x00000001
pcm0:       Ctl flags: 0x00000011
pcm0:      Output amp: 0x00051f1f
pcm0:                  mute=0 step=31 size=5 offset=31
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=11 [audio mixer]
pcm0: 
pcm0:             nid: 14 [ANALOG]
pcm0:            name: audio mixer
pcm0:      widget_cap: 0x0020010e
pcm0:     Parse flags: 0x00000001
pcm0:       Ctl flags: 0x00000011
pcm0:      Output amp: 0x00051f1f
pcm0:                  mute=0 step=31 size=5 offset=31
pcm0:       Input amp: 0x80000000
pcm0:                  mute=1 step=0 size=0 offset=0
pcm0:     connections: 2
pcm0:           |
pcm0:           + <- nid=2 [audio output]
pcm0:           |
pcm0:           + <- nid=11 [audio mixer]
pcm0: 
pcm0:             nid: 15 [ANALOG]
pcm0:            name: vendor widget
pcm0:      widget_cap: 0x00f00000
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 16 [ANALOG]
pcm0:            name: vendor widget
pcm0:      widget_cap: 0x00f00000
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 17 [ANALOG]
pcm0:            name: vendor widget
pcm0:      widget_cap: 0x00f00000
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 18 [ANALOG] [DISABLED]
pcm0:            name: pin: speaker (none)
pcm0:      widget_cap: 0x00400001
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x00000020
pcm0:                  IN
pcm0:      Pin config: 0x411111f0
pcm0:     Pin control: 0x00000020 IN
pcm0:     connections: 0
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: pin: line out (jack)
pcm0:      widget_cap: 0x0040018f
pcm0:     Parse flags: 0x00000001
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x0000003e
pcm0:                  TRQD HP OUT IN : UNSOL
pcm0:      Pin config: 0x01014410
pcm0:     Pin control: 0x00000040 OUT
pcm0:      Output amp: 0x80000000
pcm0:                  mute=1 step=0 size=0 offset=0
pcm0:       Input amp: 0x00270300
pcm0:                  mute=0 step=3 size=39 offset=0
pcm0:     connections: 2
pcm0:           |
pcm0:           + <- nid=12 [audio mixer] (selected)
pcm0:           |
pcm0:           + <- nid=13 [audio mixer]
pcm0: 
pcm0:             nid: 21 [ANALOG] [DISABLED]
pcm0:            name: pin: speaker (none)
pcm0:      widget_cap: 0x0040018f
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x0000003e
pcm0:                  TRQD HP OUT IN : UNSOL
pcm0:      Pin config: 0x411111f0
pcm0:     Pin control: 0x000000e0 HP IN OUT
pcm0:      Output amp: 0x80000000
pcm0:                  mute=1 step=0 size=0 offset=0
pcm0:       Input amp: 0x00270300
pcm0:                  mute=0 step=3 size=39 offset=0
pcm0:     connections: 2
pcm0:           |
pcm0:           + <- nid=12 [audio mixer]
pcm0:           |
pcm0:           + <- nid=13 [audio mixer]
pcm0: 
pcm0:             nid: 22 [ANALOG]
pcm0:            name: pin: speaker (fixed)
pcm0:      widget_cap: 0x0040010c
pcm0:     Parse flags: 0x00000001
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x00000010
pcm0:                  OUT
pcm0:      Pin config: 0x99130120
pcm0:     Pin control: 0x00000040 OUT
pcm0:      Output amp: 0x80000000
pcm0:                  mute=1 step=0 size=0 offset=0
pcm0:     connections: 1
pcm0:           |
pcm0:           + <- nid=14 [audio mixer]
pcm0: 
pcm0:             nid: 23 [ANALOG]
pcm0:            name: vendor widget
pcm0:      widget_cap: 0x00f00000
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 24 [ANALOG]
pcm0:            name: pin: Mic in (jack)
pcm0:      widget_cap: 0x0040018f
pcm0:     Parse flags: 0x00000002
pcm0:       Ctl flags: 0x00000081
pcm0:         Pin cap: 0x0000173e
pcm0:                  TRQD HP OUT IN VREF[ 50 80 GROUND HIZ ] : UNSOL
pcm0:      Pin config: 0x01a19c30
pcm0:     Pin control: 0x00000024 IN
pcm0:      Output amp: 0x80000000
pcm0:                  mute=1 step=0 size=0 offset=0
pcm0:       Input amp: 0x00270300
pcm0:                  mute=0 step=3 size=39 offset=0
pcm0:     connections: 2
pcm0:           |
pcm0:           + <- nid=12 [audio mixer] (selected)
pcm0:           |
pcm0:           + <- nid=13 [audio mixer]
pcm0: 
pcm0:             nid: 25 [ANALOG]
pcm0:            name: pin: Mic in (jack)
pcm0:      widget_cap: 0x0040018f
pcm0:     Parse flags: 0x00000002
pcm0:       Ctl flags: 0x00000081
pcm0:         Pin cap: 0x0000173e
pcm0:                  TRQD HP OUT IN VREF[ 50 80 GROUND HIZ ] : UNSOL
pcm0:      Pin config: 0x02a19d40
pcm0:     Pin control: 0x00000024 IN
pcm0:      Output amp: 0x80000000
pcm0:                  mute=1 step=0 size=0 offset=0
pcm0:       Input amp: 0x00270300
pcm0:                  mute=0 step=3 size=39 offset=0
pcm0:     connections: 2
pcm0:           |
pcm0:           + <- nid=12 [audio mixer] (selected)
pcm0:           |
pcm0:           + <- nid=13 [audio mixer]
pcm0: 
pcm0:             nid: 26 [ANALOG]
pcm0:            name: pin: line in (jack)
pcm0:      widget_cap: 0x0040018f
pcm0:     Parse flags: 0x00000002
pcm0:       Ctl flags: 0x00000041
pcm0:         Pin cap: 0x0000173e
pcm0:                  TRQD HP OUT IN VREF[ 50 80 GROUND HIZ ] : UNSOL
pcm0:      Pin config: 0x01813c3f
pcm0:     Pin control: 0x00000024 IN
pcm0:      Output amp: 0x80000000
pcm0:                  mute=1 step=0 size=0 offset=0
pcm0:       Input amp: 0x00270300
pcm0:                  mute=0 step=3 size=39 offset=0
pcm0:     connections: 2
pcm0:           |
pcm0:           + <- nid=12 [audio mixer] (selected)
pcm0:           |
pcm0:           + <- nid=13 [audio mixer]
pcm0: 
pcm0:             nid: 27 [ANALOG]
pcm0:            name: pin: headphones out (jack)
pcm0:      widget_cap: 0x0040018f
pcm0:     Parse flags: 0x00000001
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x0000173e
pcm0:                  TRQD HP OUT IN VREF[ 50 80 GROUND HIZ ] : UNSOL
pcm0:      Pin config: 0x0221451f
pcm0:     Pin control: 0x000000c0 HP OUT
pcm0:      Output amp: 0x80000000
pcm0:                  mute=1 step=0 size=0 offset=0
pcm0:       Input amp: 0x00270300
pcm0:                  mute=0 step=3 size=39 offset=0
pcm0:     connections: 2
pcm0:           |
pcm0:           + <- nid=12 [audio mixer] (selected)
pcm0:           |
pcm0:           + <- nid=13 [audio mixer]
pcm0: 
pcm0:             nid: 28 [ANALOG] [DISABLED]
pcm0:            name: pin: speaker (none)
pcm0:      widget_cap: 0x00400001
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x00000020
pcm0:                  IN
pcm0:      Pin config: 0x411111f0
pcm0:     Pin control: 0x00000020 IN
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 29 [ANALOG] [DISABLED]
pcm0:            name: pin: line out (none)
pcm0:      widget_cap: 0x00400000
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x00000020
pcm0:                  IN
pcm0:      Pin config: 0x4005c603
pcm0:     Pin control: 0x00000020 IN
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 30 [DIGITAL] [DISABLED]
pcm0:            name: pin: digital (other) out (jack)
pcm0:      widget_cap: 0x00400380
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x00000010
pcm0:                  OUT : UNSOL
pcm0:      Pin config: 0x18561150
pcm0:     Pin control: 0x00000040 OUT
pcm0:     connections: 1
pcm0:           |
pcm0:           + <- nid=6 [audio output] [DISABLED]
pcm0: 
pcm0:             nid: 31 [DIGITAL] [DISABLED]
pcm0:            name: pin: speaker (none)
pcm0:      widget_cap: 0x00400280
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x00000020
pcm0:                  IN : UNSOL
pcm0:      Pin config: 0x411111f0
pcm0:     Pin control: 0x00000020 IN
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 32 [ANALOG]
pcm0:            name: vendor widget
pcm0:      widget_cap: 0x00f00040
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 33 [ANALOG]
pcm0:            name: volume widget
pcm0:      widget_cap: 0x00600080
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 34 [ANALOG]
pcm0:            name: audio selector
pcm0:      widget_cap: 0x00300101
pcm0:     Parse flags: 0x00000006
pcm0:       Ctl flags: 0x00000000
pcm0:     connections: 10
pcm0:           |
pcm0:           + <- nid=24 [pin: Mic in (jack)] (selected)
pcm0:           |
pcm0:           + <- nid=25 [pin: Mic in (jack)]
pcm0:           |
pcm0:           + <- nid=26 [pin: line in (jack)]
pcm0:           |
pcm0:           + <- nid=27 [pin: headphones out (jack)]
pcm0:           |
pcm0:           + <- nid=28 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=29 [pin: line out (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=20 [pin: line out (jack)]
pcm0:           |
pcm0:           + <- nid=21 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=11 [audio mixer]
pcm0:           |
pcm0:           + <- nid=18 [pin: speaker (none)] [DISABLED]
pcm0: 
pcm0:             nid: 35 [ANALOG]
pcm0:            name: audio mixer
pcm0:      widget_cap: 0x0020010b
pcm0:     Parse flags: 0x00000006
pcm0:       Ctl flags: 0x00000000
pcm0:       Input amp: 0x80000000
pcm0:                  mute=1 step=0 size=0 offset=0
pcm0:     connections: 9
pcm0:           |
pcm0:           + <- nid=24 [pin: Mic in (jack)]
pcm0:           |
pcm0:           + <- nid=25 [pin: Mic in (jack)]
pcm0:           |
pcm0:           + <- nid=26 [pin: line in (jack)]
pcm0:           |
pcm0:           + <- nid=27 [pin: headphones out (jack)]
pcm0:           |
pcm0:           + <- nid=28 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=29 [pin: line out (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=20 [pin: line out (jack)]
pcm0:           |
pcm0:           + <- nid=21 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=11 [audio mixer]
pcm0: 
pcm0:             nid: 36 [ANALOG]
pcm0:            name: audio mixer
pcm0:      widget_cap: 0x0020010b
pcm0:     Parse flags: 0x00000006
pcm0:       Ctl flags: 0x00000000
pcm0:       Input amp: 0x80000000
pcm0:                  mute=1 step=0 size=0 offset=0
pcm0:     connections: 9
pcm0:           |
pcm0:           + <- nid=24 [pin: Mic in (jack)]
pcm0:           |
pcm0:           + <- nid=25 [pin: Mic in (jack)]
pcm0:           |
pcm0:           + <- nid=26 [pin: line in (jack)]
pcm0:           |
pcm0:           + <- nid=27 [pin: headphones out (jack)]
pcm0:           |
pcm0:           + <- nid=28 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=29 [pin: line out (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=20 [pin: line out (jack)]
pcm0:           |
pcm0:           + <- nid=21 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=11 [audio mixer]
pcm0: 
pcm0: +------------------------+
pcm0: | DUMPING HDA AMPLIFIERS |
pcm0: +------------------------+
pcm0: 
pcm0:   1: nid=7 dir=0x2 index=0 ossmask=0x00000800 ossdev=0
pcm0:   2: nid=8 dir=0x2 index=0 ossmask=0x00000800 ossdev=0
pcm0:   3: nid=9 dir=0x2 index=0 ossmask=0x00000800 ossdev=0
pcm0:   4: nid=11 cnid=24 dir=0x2 index=0 ossmask=0x00000081 ossdev=7
pcm0:   5: nid=11 cnid=25 dir=0x2 index=1 ossmask=0x00000081 ossdev=7
pcm0:   6: nid=11 cnid=26 dir=0x2 index=2 ossmask=0x00000041 ossdev=6
pcm0:   7: nid=11 cnid=27 dir=0x2 index=3 ossmask=0x00000000 ossdev=0
pcm0:   8: nid=11 cnid=28 dir=0x2 index=4 ossmask=0x00000000 ossdev=0
[DISABLED]
pcm0:   9: nid=11 cnid=29 dir=0x2 index=5 ossmask=0x00000000 ossdev=0
[DISABLED]
pcm0:  10: nid=11 cnid=20 dir=0x2 index=6 ossmask=0x00000000 ossdev=0
pcm0:  11: nid=11 cnid=21 dir=0x2 index=7 ossmask=0x00000000 ossdev=0
[DISABLED]
pcm0:  12: nid=12 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  13: nid=12 cnid=2 dir=0x2 index=0 ossmask=0x00000011 ossdev=4
pcm0:  14: nid=12 cnid=11 dir=0x2 index=1 ossmask=0x00000000 ossdev=0
pcm0:  15: nid=13 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  16: nid=13 cnid=3 dir=0x2 index=0 ossmask=0x00000011 ossdev=4
pcm0:  17: nid=13 cnid=11 dir=0x2 index=1 ossmask=0x00000000 ossdev=0
pcm0:  18: nid=14 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  19: nid=14 cnid=2 dir=0x2 index=0 ossmask=0x00000011 ossdev=4
pcm0:  20: nid=14 cnid=11 dir=0x2 index=1 ossmask=0x00000000 ossdev=0
pcm0:  21: nid=20 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  22: nid=20 dir=0x2 index=0 ossmask=0x00000000 ossdev=0
pcm0:  23: nid=21 dir=0x1 index=0 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  24: nid=21 dir=0x2 index=0 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  25: nid=22 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  26: nid=24 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  27: nid=24 dir=0x2 index=0 ossmask=0x00000000 ossdev=0
pcm0:  28: nid=25 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  29: nid=25 dir=0x2 index=0 ossmask=0x00000000 ossdev=0
pcm0:  30: nid=26 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  31: nid=26 dir=0x2 index=0 ossmask=0x00000000 ossdev=0
pcm0:  32: nid=27 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  33: nid=27 dir=0x2 index=0 ossmask=0x00000000 ossdev=0
pcm0:  34: nid=35 cnid=24 dir=0x2 index=0 ossmask=0x00000000 ossdev=0
pcm0:  35: nid=35 cnid=25 dir=0x2 index=1 ossmask=0x00000000 ossdev=0
pcm0:  36: nid=35 cnid=26 dir=0x2 index=2 ossmask=0x00000000 ossdev=0
pcm0:  37: nid=35 cnid=27 dir=0x2 index=3 ossmask=0x00000000 ossdev=0
pcm0:  38: nid=35 cnid=28 dir=0x2 index=4 ossmask=0x00000000 ossdev=0
[DISABLED]
pcm0:  39: nid=35 cnid=29 dir=0x2 index=5 ossmask=0x00000000 ossdev=0
[DISABLED]
pcm0:  40: nid=35 cnid=20 dir=0x2 index=6 ossmask=0x00000000 ossdev=0
pcm0:  41: nid=35 cnid=21 dir=0x2 index=7 ossmask=0x00000000 ossdev=0
[DISABLED]
pcm0:  42: nid=35 cnid=11 dir=0x2 index=8 ossmask=0x00000000 ossdev=0
pcm0:  43: nid=36 cnid=24 dir=0x2 index=0 ossmask=0x00000000 ossdev=0
pcm0:  44: nid=36 cnid=25 dir=0x2 index=1 ossmask=0x00000000 ossdev=0
pcm0:  45: nid=36 cnid=26 dir=0x2 index=2 ossmask=0x00000000 ossdev=0
pcm0:  46: nid=36 cnid=27 dir=0x2 index=3 ossmask=0x00000000 ossdev=0
pcm0:  47: nid=36 cnid=28 dir=0x2 index=4 ossmask=0x00000000 ossdev=0
[DISABLED]
pcm0:  48: nid=36 cnid=29 dir=0x2 index=5 ossmask=0x00000000 ossdev=0
[DISABLED]
pcm0:  49: nid=36 cnid=20 dir=0x2 index=6 ossmask=0x00000000 ossdev=0
pcm0:  50: nid=36 cnid=21 dir=0x2 index=7 ossmask=0x00000000 ossdev=0
[DISABLED]
pcm0:  51: nid=36 cnid=11 dir=0x2 index=8 ossmask=0x00000000 ossdev=0
pcm0: 
pcm0: +-----------------------------------+
pcm0: | DUMPING HDA AUDIO/VOLUME CONTROLS |
pcm0: +-----------------------------------+
pcm0: 
pcm0: Master Volume (OSS: vol)
pcm0:    |
pcm0:    +-  nid: 11 index:  0 (nid: 24) mute: 1 step:  31 size:   5
off:  23 dir=0x2 ossmask=0x00000081
pcm0:    |
pcm0:    +-  nid: 11 index:  1 (nid: 25) mute: 1 step:  31 size:   5
off:  23 dir=0x2 ossmask=0x00000081
pcm0:    |
pcm0:    +-  nid: 11 index:  2 (nid: 26) mute: 1 step:  31 size:   5
off:  23 dir=0x2 ossmask=0x00000041
pcm0:    |
pcm0:    +-  nid: 12 index:  0 (nid:  2) mute: 1 step:   0 size:   0
off:   0 dir=0x2 ossmask=0x00000011
pcm0:    |
pcm0:    +-  nid: 13 index:  0 (nid:  3) mute: 1 step:   0 size:   0
off:   0 dir=0x2 ossmask=0x00000011
pcm0:    |
pcm0:    +-  nid: 14 index:  0 (nid:  2) mute: 1 step:   0 size:   0
off:   0 dir=0x2 ossmask=0x00000011
pcm0: 
pcm0: PCM Volume (OSS: pcm)
pcm0:    |
pcm0:    +-  nid: 12 index:  0 (nid:  2) mute: 1 step:   0 size:   0
off:   0 dir=0x2 ossmask=0x00000011
pcm0:    |
pcm0:    +-  nid: 13 index:  0 (nid:  3) mute: 1 step:   0 size:   0
off:   0 dir=0x2 ossmask=0x00000011
pcm0:    |
pcm0:    +-  nid: 14 index:  0 (nid:  2) mute: 1 step:   0 size:   0
off:   0 dir=0x2 ossmask=0x00000011
pcm0: 
pcm0: Microphone Volume (OSS: mic)
pcm0:    |
pcm0:    +-  nid: 11 index:  0 (nid: 24) mute: 1 step:  31 size:   5
off:  23 dir=0x2 ossmask=0x00000081
pcm0:    |
pcm0:    +-  nid: 11 index:  1 (nid: 25) mute: 1 step:  31 size:   5
off:  23 dir=0x2 ossmask=0x00000081
pcm0: 
pcm0: Line-in Volume (OSS: line)
pcm0:    |
pcm0:    +-  nid: 11 index:  2 (nid: 26) mute: 1 step:  31 size:   5
off:  23 dir=0x2 ossmask=0x00000041
pcm0: 
pcm0: Recording Level (OSS: rec)
pcm0:    |
pcm0:    +-  nid:  7 index:  0           mute: 1 step:  31 size:   5
off:   8 dir=0x2 ossmask=0x00000800
pcm0:    |
pcm0:    +-  nid:  8 index:  0           mute: 1 step:  31 size:   5
off:   8 dir=0x2 ossmask=0x00000800
pcm0:    |
pcm0:    +-  nid:  9 index:  0           mute: 1 step:  31 size:   5
off:   8 dir=0x2 ossmask=0x00000800
pcm0: 
pcm0: Playback path:
pcm0: 
pcm0:     nid=20 [pin: line out (jack)]
pcm0:       ^
pcm0:       |
pcm0:       +-----<------+
pcm0:                    ^
pcm0:                    |
pcm0:                  nid=12 [audio mixer]
pcm0:                    ^
pcm0:                    |
pcm0:                  nid=2 [audio output]
pcm0: 
pcm0:     nid=22 [pin: speaker (fixed)]
pcm0:       ^
pcm0:       |
pcm0:       +-----<------+
pcm0:                    ^
pcm0:                    |
pcm0:                  nid=14 [audio mixer]
pcm0:                    ^
pcm0:                    |
pcm0:                  nid=2 [audio output]
pcm0: 
pcm0:     nid=27 [pin: headphones out (jack)]
pcm0:       ^
pcm0:       |
pcm0:       +-----<------+
pcm0:                    ^
pcm0:                    |
pcm0:                  nid=12 [audio mixer]
pcm0:                    ^
pcm0:                    |
pcm0:                  nid=2 [audio output]
pcm0: 
pcm0: Recording sources:
pcm0: 
pcm0:     nid=34 [audio selector]
pcm0:       |
pcm0:       + <- nid=24 [pin: Mic in (jack)] [recsrc: vol, mic]
pcm0:       |
pcm0:       + <- nid=25 [pin: Mic in (jack)] [recsrc: vol, mic]
pcm0:       |
pcm0:       + <- nid=26 [pin: line in (jack)] [recsrc: vol, line]
pcm0:       |
pcm0:       + <- nid=27 [pin: headphones out (jack)]
pcm0:       |
pcm0:       + <- nid=20 [pin: line out (jack)]
pcm0:       |
pcm0:       + <- nid=11 [audio mixer] [recsrc: vol, line, mic]
pcm0: 
pcm0:     nid=35 [audio mixer]
pcm0:       |
pcm0:       + <- nid=24 [pin: Mic in (jack)] [recsrc: vol, mic]
pcm0:       |
pcm0:       + <- nid=25 [pin: Mic in (jack)] [recsrc: vol, mic]
pcm0:       |
pcm0:       + <- nid=26 [pin: line in (jack)] [recsrc: vol, line]
pcm0:       |
pcm0:       + <- nid=27 [pin: headphones out (jack)]
pcm0:       |
pcm0:       + <- nid=20 [pin: line out (jack)]
pcm0:       |
pcm0:       + <- nid=11 [audio mixer] [recsrc: vol, line, mic]
pcm0: 
pcm0:     nid=36 [audio mixer]
pcm0:       |
pcm0:       + <- nid=24 [pin: Mic in (jack)] [recsrc: vol, mic]
pcm0:       |
pcm0:       + <- nid=25 [pin: Mic in (jack)] [recsrc: vol, mic]
pcm0:       |
pcm0:       + <- nid=26 [pin: line in (jack)] [recsrc: vol, line]
pcm0:       |
pcm0:       + <- nid=27 [pin: headphones out (jack)]
pcm0:       |
pcm0:       + <- nid=20 [pin: line out (jack)]
pcm0:       |
pcm0:       + <- nid=11 [audio mixer] [recsrc: vol, line, mic]
pcm0: 
pcm0: +--------------------------------------+
pcm0: | DUMPING PCM Playback/Record Channels |
pcm0: +--------------------------------------+
pcm0: 
pcm0:    PCM Playback: 1
pcm0:      Stream cap: 0x00000001
pcm0:          Format: PCM
pcm0:         PCM cap: 0x000e0560
pcm0:        PCM size: 16 20 24
pcm0:        PCM rate: 44 48 96 192
pcm0:             DAC: 2 3
pcm0: 
pcm0:      PCM Record: 1
pcm0:      Stream cap: 0x00000001
pcm0:          Format: PCM
pcm0:         PCM cap: 0x00060160
pcm0:        PCM size: 16 20
pcm0:        PCM rate: 44 48 96
pcm0:             ADC: 7 8 9
SMP: AP CPU #1 Launched!
cpu1 AP:
     ID: 0x01000000   VER: 0x00050014 LDR: 0x00000000 DFR: 0xffffffff
  lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff
  timer: 0x000200ef therm: 0x00010000 err: 0x00010000 pcm: 0x00010000
SMP: AP CPU #2 Launched!
cpu2 AP:
     ID: 0x02000000   VER: 0x00050014 LDR: 0x00000000 DFR: 0xffffffff
  lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff
  timer: 0x000200ef therm: 0x00010000 err: 0x00010000 pcm: 0x00010000
SMP: AP CPU #3 Launched!
cpu3 AP:
     ID: 0x03000000   VER: 0x00050014 LDR: 0x00000000 DFR: 0xffffffff
  lint0: 0x00010700 lint1: 0x00000400 TPR: 0x00000000 SVR: 0x000001ff
  timer: 0x000200ef therm: 0x00010000 err: 0x00010000 pcm: 0x00010000
ioapic0: Assigning ISA IRQ 1 to local APIC 0
ioapic0: Assigning ISA IRQ 4 to local APIC 1
ioapic0: Assigning ISA IRQ 9 to local APIC 2
ioapic0: Assigning ISA IRQ 14 to local APIC 3
ioapic0: Assigning ISA IRQ 15 to local APIC 0
ioapic0: Assigning PCI IRQ 18 to local APIC 1
ioapic0: Assigning PCI IRQ 19 to local APIC 2
ioapic0: Assigning PCI IRQ 20 to local APIC 3
ioapic0: Assigning PCI IRQ 21 to local APIC 0
ioapic0: Assigning PCI IRQ 22 to local APIC 1
ioapic0: Assigning PCI IRQ 23 to local APIC 2
msi: Assigning MSI IRQ 256 to local APIC 3
GEOM_MIRROR: Device mirror/gm0 launched (2/2).
Trying to mount root from ufs:/dev/mirror/gm0s1a
start_init: trying /sbin/init
(probe0:ata0:0:1:0): Down reving Protocol Version from 2 to 0?
pass0 at ata0 bus 0 target 1 lun 0
pass0: <Optiarc DVD RW AD-7170S 1.82> Removable CD-ROM SCSI-0 device 
pass0: Serial Number [
pass0: 3.300MB/s transfers
GEOM: new sdgi0s ka tc da0ta
0 bus 0 target 1 lun 0
sg0: <Optiarc DVD RW AD-7170S 1.82> Removable CD-ROM SCSI-0 device 
sg0: Serial Number [
sg0: 3.300MB/s transfers
(cd0:ata0:0:1:0): error 6
(cd0:ata0:0:1:0): Unretryable Error
cd0 at ata0 bus 0 target 1 lun 0
cd0: <Optiarc DVD RW AD-7170S 1.82> Removable CD-ROM SCSI-0 device 
cd0: Serial Number [
cd0: 3.300MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present
(cd0:ata0:0:1:0): error 6
(cd0:ata0:0:1:0): Unretryable Error
(cd0:ata0:0:1:0): error 6
(cd0:ata0:0:1:0): Unretryable Error
(cd0:ata0:0:1:0): error 6
(cd0:ata0:0:1:0): Unretryable Error
(cd0:ata0:0:1:0): error 6
(cd0:ata0:0:1:0): Unretryable Error
em0: Link is up 1000 Mbps Full Duplex

>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-multimedia 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Wed Jan 30 09:56:26 UTC 2008 
Responsible-Changed-Why:  
Over to maintainer(s). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=120144 
State-Changed-From-To: open->patched 
State-Changed-By: mav 
State-Changed-When: Mon Oct 13 11:22:29 UTC 2008 
State-Changed-Why:  
Updated snd_hda driver from 8-CURRENT should manage this. 
I expect to merge it to 7-STABLE a bit later. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=120144 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/120144: commit references a PR
Date: Wed,  7 Jan 2009 15:29:05 +0000 (UTC)

 Author: mav
 Date: Wed Jan  7 15:28:47 2009
 New Revision: 186862
 URL: http://svn.freebsd.org/changeset/base/186862
 
 Log:
   Merge updated snd_hda driver version 20081226_0122 from CURRENT.
   
   This update gives:
    - multiple codec per HDA bus support;
    - multiple functional groups per codec support;
    - multiple audio devices per functional group support;
    - digital (SPDIF/HDMI) audio input/output support;
    - better UAA specification compliance with wide configureability;
    - headphones redirection controlled by UAA configuration instead of quirks;
    - improved codec parser, that gives working playback and recording with all
      of the long list of tested codecs and systems;
    - suspend/resume support;
    - part of multichannel audio support (requires OSS improvement to be used);
   
   Note, that due to added HDMI audio and logical audio devices support, updated
   driver often provides several PCM devices. In some cases it can make system
   default audio device no longer corresponding to the users's habbitual audio
   connectors. In such cases wanted device can be specified in audio application
   setup or defined globally via hw.snd.default_unit sysctl according to
   sound(4) man page.
   
   Additional information information about driver operation can be obtained
   from the updated man page and verbose boot messages.
   
   PR:		kern/119181, kern/120144, kern/117599, kern/117729,
   		kern/119671, kern/124645, kern/125822, kern/126217,
   		kern/127105
 
 Modified:
   stable/7/sys/dev/sound/pci/hda/hda_reg.h
   stable/7/sys/dev/sound/pci/hda/hdac.c
   stable/7/sys/dev/sound/pci/hda/hdac_private.h
 
 Modified: stable/7/sys/dev/sound/pci/hda/hda_reg.h
 ==============================================================================
 --- stable/7/sys/dev/sound/pci/hda/hda_reg.h	Wed Jan  7 14:00:44 2009	(r186861)
 +++ stable/7/sys/dev/sound/pci/hda/hda_reg.h	Wed Jan  7 15:28:47 2009	(r186862)
 @@ -180,13 +180,14 @@
      HDA_CMD_VERB_SET_CONV_FMT, (payload)))
  
  /* Digital Converter Control */
 -#define HDA_CMD_VERB_GET_DIGITAL_CONV_FMT		0xf0d
 +#define HDA_CMD_VERB_GET_DIGITAL_CONV_FMT1		0xf0d
 +#define HDA_CMD_VERB_GET_DIGITAL_CONV_FMT2		0xf0e
  #define HDA_CMD_VERB_SET_DIGITAL_CONV_FMT1		0x70d
  #define HDA_CMD_VERB_SET_DIGITAL_CONV_FMT2		0x70e
  
  #define HDA_CMD_GET_DIGITAL_CONV_FMT(cad, nid)				\
      (HDA_CMD_12BIT((cad), (nid),					\
 -    HDA_CMD_VERB_GET_DIGITAL_CONV_FMTT, 0x0))
 +    HDA_CMD_VERB_GET_DIGITAL_CONV_FMT1, 0x0))
  #define HDA_CMD_SET_DIGITAL_CONV_FMT1(cad, nid, payload)		\
      (HDA_CMD_12BIT((cad), (nid),					\
      HDA_CMD_VERB_SET_DIGITAL_CONV_FMT1, (payload)))
 @@ -1034,7 +1035,7 @@
      HDA_PARAM_PIN_CAP_HEADPHONE_CAP_SHIFT)
  #define HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP(param)			\
      (((param) & HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_MASK) >>		\
 -    HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_MASK)
 +    HDA_PARAM_PIN_CAP_PRESENCE_DETECT_CAP_SHIFT)
  #define HDA_PARAM_PIN_CAP_TRIGGER_REQD(param)				\
      (((param) & HDA_PARAM_PIN_CAP_TRIGGER_REQD_MASK) >>			\
      HDA_PARAM_PIN_CAP_TRIGGER_REQD_SHIFT)
 @@ -1193,14 +1194,47 @@
      HDA_PARAM_VOLUME_KNOB_CAP_NUM_STEPS_SHIFT)
  
  
 -#define HDA_CONFIG_DEFAULTCONF_SEQUENCE_MASK		0x00000000f
 -#define HDA_CONFIG_DEFAULTCONF_ASSOCIATION_MASK		0x0000000f0
 -#define HDA_CONFIG_DEFAULTCONF_MISC_MASK			0x000000f00
 -#define HDA_CONFIG_DEFAULTCONF_COLOR_MASK			0x00000f000
 -#define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_MASK		0x000f00000
 -#define HDA_CONFIG_DEFAULTCONF_DEVICE_MASK			0x000f00000
 -#define HDA_CONFIG_DEFAULTCONF_LOCATION_MASK		0x03f000000
 -#define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK		0x0c0000000
 +#define HDA_CONFIG_DEFAULTCONF_SEQUENCE_MASK		0x0000000f
 +#define HDA_CONFIG_DEFAULTCONF_SEQUENCE_SHIFT		0
 +#define HDA_CONFIG_DEFAULTCONF_ASSOCIATION_MASK		0x000000f0
 +#define HDA_CONFIG_DEFAULTCONF_ASSOCIATION_SHIFT	4
 +#define HDA_CONFIG_DEFAULTCONF_MISC_MASK		0x00000f00
 +#define HDA_CONFIG_DEFAULTCONF_MISC_SHIFT		8
 +#define HDA_CONFIG_DEFAULTCONF_COLOR_MASK		0x0000f000
 +#define HDA_CONFIG_DEFAULTCONF_COLOR_SHIFT		12
 +#define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_MASK	0x000f0000
 +#define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_SHIFT	16
 +#define HDA_CONFIG_DEFAULTCONF_DEVICE_MASK		0x00f00000
 +#define HDA_CONFIG_DEFAULTCONF_DEVICE_SHIFT		20
 +#define HDA_CONFIG_DEFAULTCONF_LOCATION_MASK		0x3f000000
 +#define HDA_CONFIG_DEFAULTCONF_LOCATION_SHIFT		24
 +#define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK	0xc0000000
 +#define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_SHIFT	30
 +
 +#define HDA_CONFIG_DEFAULTCONF_SEQUENCE(conf)				\
 +    (((conf) & HDA_CONFIG_DEFAULTCONF_SEQUENCE_MASK) >>			\
 +    HDA_CONFIG_DEFAULTCONF_SEQUENCE_SHIFT)
 +#define HDA_CONFIG_DEFAULTCONF_ASSOCIATION(conf)			\
 +    (((conf) & HDA_CONFIG_DEFAULTCONF_ASSOCIATION_MASK) >>		\
 +    HDA_CONFIG_DEFAULTCONF_ASSOCIATION_SHIFT)
 +#define HDA_CONFIG_DEFAULTCONF_MISC(conf)				\
 +    (((conf) & HDA_CONFIG_DEFAULTCONF_MISC_MASK) >>			\
 +    HDA_CONFIG_DEFAULTCONF_MISC_SHIFT)
 +#define HDA_CONFIG_DEFAULTCONF_COLOR(conf)				\
 +    (((conf) & HDA_CONFIG_DEFAULTCONF_COLOR_MASK) >>			\
 +    HDA_CONFIG_DEFAULTCONF_COLOR_SHIFT)
 +#define HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE(conf)			\
 +    (((conf) & HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_MASK) >>		\
 +    HDA_CONFIG_DEFAULTCONF_CONNECTION_TYPE_SHIFT)
 +#define HDA_CONFIG_DEFAULTCONF_DEVICE(conf)				\
 +    (((conf) & HDA_CONFIG_DEFAULTCONF_DEVICE_MASK) >>			\
 +    HDA_CONFIG_DEFAULTCONF_DEVICE_SHIFT)
 +#define HDA_CONFIG_DEFAULTCONF_LOCATION(conf)				\
 +    (((conf) & HDA_CONFIG_DEFAULTCONF_LOCATION_MASK) >>			\
 +    HDA_CONFIG_DEFAULTCONF_LOCATION_SHIFT)
 +#define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY(conf)			\
 +    (((conf) & HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK) >>		\
 +    HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_SHIFT)
  
  #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_JACK		(0<<30)
  #define HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_NONE		(1<<30)
 
 Modified: stable/7/sys/dev/sound/pci/hda/hdac.c
 ==============================================================================
 --- stable/7/sys/dev/sound/pci/hda/hdac.c	Wed Jan  7 14:00:44 2009	(r186861)
 +++ stable/7/sys/dev/sound/pci/hda/hdac.c	Wed Jan  7 15:28:47 2009	(r186862)
 @@ -1,6 +1,7 @@
  /*-
   * Copyright (c) 2006 Stephane E. Potvin <sepotvin@videotron.ca>
   * Copyright (c) 2006 Ariff Abdullah <ariff@FreeBSD.org>
 + * Copyright (c) 2008 Alexander Motin <mav@FreeBSD.org>
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
 @@ -61,6 +62,7 @@
   *    *              Daniel Eischen <deischen@FreeBSD.org>              *
   *    *             Maxime Guillaud <bsd-ports@mguillaud.net>           *
   *    *              Ariff Abdullah <ariff@FreeBSD.org>                 *
 + *    *             Alexander Motin <mav@FreeBSD.org>                   *
   *    *                                                                 *
   *    *   ....and various people from freebsd-multimedia@FreeBSD.org    *
   *    *                                                                 *
 @@ -81,8 +83,7 @@
  
  #include "mixer_if.h"
  
 -#define HDA_DRV_TEST_REV	"20080420_0052"
 -#define HDA_WIDGET_PARSER_REV	1
 +#define HDA_DRV_TEST_REV	"20081226_0122"
  
  SND_DECLARE_FILE("$FreeBSD$");
  
 @@ -92,6 +93,12 @@ SND_DECLARE_FILE("$FreeBSD$");
  	}						\
  } while(0)
  
 +#define HDA_BOOTHVERBOSE(stmt)	do {			\
 +	if (snd_verbose > 3) {				\
 +		stmt					\
 +	}						\
 +} while(0)
 +
  #if 1
  #undef HDAC_INTR_EXTRA
  #define HDAC_INTR_EXTRA		1
 @@ -141,6 +148,8 @@ SND_DECLARE_FILE("$FreeBSD$");
  #define HDA_INTEL_82801G	HDA_MODEL_CONSTRUCT(INTEL, 0x27d8)
  #define HDA_INTEL_82801H	HDA_MODEL_CONSTRUCT(INTEL, 0x284b)
  #define HDA_INTEL_82801I	HDA_MODEL_CONSTRUCT(INTEL, 0x293e)
 +#define HDA_INTEL_82801J	HDA_MODEL_CONSTRUCT(INTEL, 0x3a3e)
 +#define HDA_INTEL_SCH		HDA_MODEL_CONSTRUCT(INTEL, 0x811b)
  #define HDA_INTEL_ALL		HDA_MODEL_CONSTRUCT(INTEL, 0xffff)
  
  /* Nvidia */
 @@ -153,6 +162,16 @@ SND_DECLARE_FILE("$FreeBSD$");
  #define HDA_NVIDIA_MCP65_2	HDA_MODEL_CONSTRUCT(NVIDIA, 0x044b)
  #define HDA_NVIDIA_MCP67_1	HDA_MODEL_CONSTRUCT(NVIDIA, 0x055c)
  #define HDA_NVIDIA_MCP67_2	HDA_MODEL_CONSTRUCT(NVIDIA, 0x055d)
 +#define HDA_NVIDIA_MCP78_1	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0774)
 +#define HDA_NVIDIA_MCP78_2	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0775)
 +#define HDA_NVIDIA_MCP78_3	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0776)
 +#define HDA_NVIDIA_MCP78_4	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0777)
 +#define HDA_NVIDIA_MCP73_1	HDA_MODEL_CONSTRUCT(NVIDIA, 0x07fc)
 +#define HDA_NVIDIA_MCP73_2	HDA_MODEL_CONSTRUCT(NVIDIA, 0x07fd)
 +#define HDA_NVIDIA_MCP79_1	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0ac0)
 +#define HDA_NVIDIA_MCP79_2	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0ac1)
 +#define HDA_NVIDIA_MCP79_3	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0ac2)
 +#define HDA_NVIDIA_MCP79_4	HDA_MODEL_CONSTRUCT(NVIDIA, 0x0ac3)
  #define HDA_NVIDIA_ALL		HDA_MODEL_CONSTRUCT(NVIDIA, 0xffff)
  
  /* ATI */
 @@ -171,6 +190,11 @@ SND_DECLARE_FILE("$FreeBSD$");
  #define HDA_SIS_966		HDA_MODEL_CONSTRUCT(SIS, 0x7502)
  #define HDA_SIS_ALL		HDA_MODEL_CONSTRUCT(SIS, 0xffff)
  
 +/* ULI */
 +#define ULI_VENDORID		0x10b9
 +#define HDA_ULI_M5461		HDA_MODEL_CONSTRUCT(ULI, 0x5461)
 +#define HDA_ULI_ALL		HDA_MODEL_CONSTRUCT(ULI, 0xffff)
 +
  /* OEM/subvendors */
  
  /* Intel */
 @@ -195,6 +219,7 @@ SND_DECLARE_FILE("$FreeBSD$");
  #define DELL_VENDORID		0x1028
  #define DELL_D630_SUBVENDOR	HDA_MODEL_CONSTRUCT(DELL, 0x01f9)
  #define DELL_D820_SUBVENDOR	HDA_MODEL_CONSTRUCT(DELL, 0x01cc)
 +#define DELL_V1400_SUBVENDOR	HDA_MODEL_CONSTRUCT(DELL, 0x0227)
  #define DELL_V1500_SUBVENDOR	HDA_MODEL_CONSTRUCT(DELL, 0x0228)
  #define DELL_I1300_SUBVENDOR	HDA_MODEL_CONSTRUCT(DELL, 0x01c9)
  #define DELL_XPSM1210_SUBVENDOR	HDA_MODEL_CONSTRUCT(DELL, 0x01d7)
 @@ -213,6 +238,7 @@ SND_DECLARE_FILE("$FreeBSD$");
  #define ACER_A4710_SUBVENDOR	HDA_MODEL_CONSTRUCT(ACER, 0x012f)
  #define ACER_A4715_SUBVENDOR	HDA_MODEL_CONSTRUCT(ACER, 0x0133)
  #define ACER_3681WXM_SUBVENDOR	HDA_MODEL_CONSTRUCT(ACER, 0x0110)
 +#define ACER_T6292_SUBVENDOR	HDA_MODEL_CONSTRUCT(ACER, 0x011b)
  #define ACER_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(ACER, 0xffff)
  
  /* Asus */
 @@ -260,6 +286,11 @@ SND_DECLARE_FILE("$FreeBSD$");
  #define APPLE_VENDORID		0x106b
  #define APPLE_MB3_SUBVENDOR	HDA_MODEL_CONSTRUCT(APPLE, 0x00a1)
  
 +/* Sony */
 +#define SONY_VENDORID		0x104d
 +#define SONY_S5_SUBVENDOR	HDA_MODEL_CONSTRUCT(SONY, 0x81cc)
 +#define SONY_ALL_SUBVENDOR	HDA_MODEL_CONSTRUCT(SONY, 0xffff)
 +
  /*
   * Apple Intel MacXXXX seems using Sigmatel codec/vendor id
   * instead of their own, which is beyond my comprehension
 @@ -308,6 +339,7 @@ SND_DECLARE_FILE("$FreeBSD$");
  
  
  /* Misc constants.. */
 +#define HDA_AMP_VOL_DEFAULT	(-1)
  #define HDA_AMP_MUTE_DEFAULT	(0xffffffff)
  #define HDA_AMP_MUTE_NONE	(0)
  #define HDA_AMP_MUTE_LEFT	(1 << 0)
 @@ -317,16 +349,10 @@ SND_DECLARE_FILE("$FreeBSD$");
  #define HDA_AMP_LEFT_MUTED(v)	((v) & (HDA_AMP_MUTE_LEFT))
  #define HDA_AMP_RIGHT_MUTED(v)	(((v) & HDA_AMP_MUTE_RIGHT) >> 1)
  
 -#define HDA_DAC_PATH	(1 << 0)
 -#define HDA_ADC_PATH	(1 << 1)
 -#define HDA_ADC_RECSEL	(1 << 2)
 -
 -#define HDA_DAC_LOCKED	(1 << 3)
 -#define HDA_ADC_LOCKED	(1 << 4)
 -
 -#define HDA_CTL_OUT	(1 << 0)
 -#define HDA_CTL_IN	(1 << 1)
 -#define HDA_CTL_BOTH	(HDA_CTL_IN | HDA_CTL_OUT)
 +#define HDA_ADC_MONITOR		(1 << 0)
 +
 +#define HDA_CTL_OUT		1
 +#define HDA_CTL_IN		2
  
  #define HDA_GPIO_MAX		8
  /* 0 - 7 = GPIO , 8 = Flush */
 @@ -346,6 +372,7 @@ SND_DECLARE_FILE("$FreeBSD$");
  #define HDA_QUIRK_FORCESTEREO	(1 << 11)
  #define HDA_QUIRK_EAPDINV	(1 << 12)
  #define HDA_QUIRK_DMAPOS	(1 << 13)
 +#define HDA_QUIRK_SENSEINV	(1 << 14)
  
  /* 26 - 31 = vrefs */
  #define HDA_QUIRK_IVREF50	(1 << 26)
 @@ -361,9 +388,6 @@ SND_DECLARE_FILE("$FreeBSD$");
  							HDA_QUIRK_OVREF100)
  #define HDA_QUIRK_VREF		(HDA_QUIRK_IVREF | HDA_QUIRK_OVREF)
  
 -#define SOUND_MASK_SKIP		(1 << 30)
 -#define SOUND_MASK_DISABLE	(1 << 31)
 -
  #if __FreeBSD_version < 600000
  #define taskqueue_drain(...)
  #endif
 @@ -386,6 +410,7 @@ static const struct {
  	{ "forcestereo", HDA_QUIRK_FORCESTEREO },
  	{ "eapdinv", HDA_QUIRK_EAPDINV },
  	{ "dmapos", HDA_QUIRK_DMAPOS },
 +	{ "senseinv", HDA_QUIRK_SENSEINV },
  	{ "ivref50", HDA_QUIRK_IVREF50 },
  	{ "ivref80", HDA_QUIRK_IVREF80 },
  	{ "ivref100", HDA_QUIRK_IVREF100 },
 @@ -413,14 +438,18 @@ static const struct {
  #define HDA_PARSE_MAXDEPTH	10
  
  #define HDAC_UNSOLTAG_EVENT_HP		0x00
 -#define HDAC_UNSOLTAG_EVENT_TEST	0x01
  
  MALLOC_DEFINE(M_HDAC, "hdac", "High Definition Audio Controller");
  
 -enum {
 -	HDA_PARSE_MIXER,
 -	HDA_PARSE_DIRECT
 -};
 +const char *HDA_COLORS[16] = {"Unknown", "Black", "Grey", "Blue", "Green", "Red",
 +    "Orange", "Yellow", "Purple", "Pink", "Res.A", "Res.B", "Res.C", "Res.D",
 +    "White", "Other"};
 +
 +const char *HDA_DEVS[16] = {"Line-out", "Speaker", "Headphones", "CD",
 +    "SPDIF-out", "Digital-out", "Modem-line", "Modem-handset", "Line-in",
 +    "AUX", "Mic", "Telephony", "SPDIF-in", "Digital-in", "Res.E", "Other"};
 +
 +const char *HDA_CONNS[4] = {"Jack", "None", "Fixed", "Both"};
  
  /* Default */
  static uint32_t hdac_fmt[] = {
 @@ -439,6 +468,8 @@ static const struct {
  	{ HDA_INTEL_82801G,  "Intel 82801G" },
  	{ HDA_INTEL_82801H,  "Intel 82801H" },
  	{ HDA_INTEL_82801I,  "Intel 82801I" },
 +	{ HDA_INTEL_82801J,  "Intel 82801J" },
 +	{ HDA_INTEL_SCH,     "Intel SCH" },
  	{ HDA_NVIDIA_MCP51,  "NVidia MCP51" },
  	{ HDA_NVIDIA_MCP55,  "NVidia MCP55" },
  	{ HDA_NVIDIA_MCP61_1, "NVidia MCP61" },
 @@ -447,16 +478,28 @@ static const struct {
  	{ HDA_NVIDIA_MCP65_2, "NVidia MCP65" },
  	{ HDA_NVIDIA_MCP67_1, "NVidia MCP67" },
  	{ HDA_NVIDIA_MCP67_2, "NVidia MCP67" },
 +	{ HDA_NVIDIA_MCP73_1, "NVidia MCP73" },
 +	{ HDA_NVIDIA_MCP73_2, "NVidia MCP73" },
 +	{ HDA_NVIDIA_MCP78_1, "NVidia MCP78" },
 +	{ HDA_NVIDIA_MCP78_2, "NVidia MCP78" },
 +	{ HDA_NVIDIA_MCP78_3, "NVidia MCP78" },
 +	{ HDA_NVIDIA_MCP78_4, "NVidia MCP78" },
 +	{ HDA_NVIDIA_MCP79_1, "NVidia MCP79" },
 +	{ HDA_NVIDIA_MCP79_2, "NVidia MCP79" },
 +	{ HDA_NVIDIA_MCP79_3, "NVidia MCP79" },
 +	{ HDA_NVIDIA_MCP79_4, "NVidia MCP79" },
  	{ HDA_ATI_SB450,     "ATI SB450"    },
  	{ HDA_ATI_SB600,     "ATI SB600"    },
  	{ HDA_VIA_VT82XX,    "VIA VT8251/8237A" },
  	{ HDA_SIS_966,       "SiS 966" },
 +	{ HDA_ULI_M5461,     "ULI M5461" },
  	/* Unknown */
  	{ HDA_INTEL_ALL,  "Intel (Unknown)"  },
  	{ HDA_NVIDIA_ALL, "NVidia (Unknown)" },
  	{ HDA_ATI_ALL,    "ATI (Unknown)"    },
  	{ HDA_VIA_ALL,    "VIA (Unknown)"    },
  	{ HDA_SIS_ALL,    "SiS (Unknown)"    },
 +	{ HDA_ULI_ALL,    "ULI (Unknown)"    },
  };
  #define HDAC_DEVICES_LEN (sizeof(hdac_devices) / sizeof(hdac_devices[0]))
  
 @@ -526,8 +569,13 @@ static const struct {
  #define REALTEK_VENDORID	0x10ec
  #define HDA_CODEC_ALC260	HDA_CODEC_CONSTRUCT(REALTEK, 0x0260)
  #define HDA_CODEC_ALC262	HDA_CODEC_CONSTRUCT(REALTEK, 0x0262)
 +#define HDA_CODEC_ALC267	HDA_CODEC_CONSTRUCT(REALTEK, 0x0267)
  #define HDA_CODEC_ALC268	HDA_CODEC_CONSTRUCT(REALTEK, 0x0268)
 +#define HDA_CODEC_ALC269	HDA_CODEC_CONSTRUCT(REALTEK, 0x0269)
 +#define HDA_CODEC_ALC272	HDA_CODEC_CONSTRUCT(REALTEK, 0x0272)
  #define HDA_CODEC_ALC660	HDA_CODEC_CONSTRUCT(REALTEK, 0x0660)
 +#define HDA_CODEC_ALC662	HDA_CODEC_CONSTRUCT(REALTEK, 0x0662)
 +#define HDA_CODEC_ALC663	HDA_CODEC_CONSTRUCT(REALTEK, 0x0663)
  #define HDA_CODEC_ALC861	HDA_CODEC_CONSTRUCT(REALTEK, 0x0861)
  #define HDA_CODEC_ALC861VD	HDA_CODEC_CONSTRUCT(REALTEK, 0x0862)
  #define HDA_CODEC_ALC880	HDA_CODEC_CONSTRUCT(REALTEK, 0x0880)
 @@ -535,16 +583,26 @@ static const struct {
  #define HDA_CODEC_ALC883	HDA_CODEC_CONSTRUCT(REALTEK, 0x0883)
  #define HDA_CODEC_ALC885	HDA_CODEC_CONSTRUCT(REALTEK, 0x0885)
  #define HDA_CODEC_ALC888	HDA_CODEC_CONSTRUCT(REALTEK, 0x0888)
 +#define HDA_CODEC_ALC889	HDA_CODEC_CONSTRUCT(REALTEK, 0x0889)
  #define HDA_CODEC_ALCXXXX	HDA_CODEC_CONSTRUCT(REALTEK, 0xffff)
  
  /* Analog Devices */
  #define ANALOGDEVICES_VENDORID	0x11d4
 +#define HDA_CODEC_AD1884A	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x184a)
 +#define HDA_CODEC_AD1882	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1882)
 +#define HDA_CODEC_AD1883	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1883)
 +#define HDA_CODEC_AD1884	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1884)
 +#define HDA_CODEC_AD1984A	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x194a)
 +#define HDA_CODEC_AD1984B	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x194b)
  #define HDA_CODEC_AD1981HD	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1981)
  #define HDA_CODEC_AD1983	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1983)
  #define HDA_CODEC_AD1984	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1984)
  #define HDA_CODEC_AD1986A	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1986)
 +#define HDA_CODEC_AD1987	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1987)
  #define HDA_CODEC_AD1988	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x1988)
  #define HDA_CODEC_AD1988B	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x198b)
 +#define HDA_CODEC_AD1882A	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x882a)
 +#define HDA_CODEC_AD1989B	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0x989b)
  #define HDA_CODEC_ADXXXX	HDA_CODEC_CONSTRUCT(ANALOGDEVICES, 0xffff)
  
  /* CMedia */
 @@ -554,29 +612,77 @@ static const struct {
  
  /* Sigmatel */
  #define SIGMATEL_VENDORID	0x8384
 +#define HDA_CODEC_STAC9230X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7612)
 +#define HDA_CODEC_STAC9230D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7613)
 +#define HDA_CODEC_STAC9229X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7614)
 +#define HDA_CODEC_STAC9229D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7615)
 +#define HDA_CODEC_STAC9228X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7616)
 +#define HDA_CODEC_STAC9228D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7617)
 +#define HDA_CODEC_STAC9227X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7618)
 +#define HDA_CODEC_STAC9227D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7619)
 +#define HDA_CODEC_STAC9274	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7620)
 +#define HDA_CODEC_STAC9274D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7621)
 +#define HDA_CODEC_STAC9273X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7622)
 +#define HDA_CODEC_STAC9273D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7623)
 +#define HDA_CODEC_STAC9272X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7624)
 +#define HDA_CODEC_STAC9272D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7625)
 +#define HDA_CODEC_STAC9271X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7626)
 +#define HDA_CODEC_STAC9271D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7627)
 +#define HDA_CODEC_STAC9274X5NH	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7628)
 +#define HDA_CODEC_STAC9274D5NH	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7629)
 +#define HDA_CODEC_STAC9250	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7634)
 +#define HDA_CODEC_STAC9251	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7636)
 +#define HDA_CODEC_IDT92HD700X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7638)
 +#define HDA_CODEC_IDT92HD700D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7639)
 +#define HDA_CODEC_IDT92HD206X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7645)
 +#define HDA_CODEC_IDT92HD206D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7646)
 +#define HDA_CODEC_STAC9872AK	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7662)
  #define HDA_CODEC_STAC9221	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7680)
 +#define HDA_CODEC_STAC922XD	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7681)
 +#define HDA_CODEC_STAC9221_A2	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7682)
  #define HDA_CODEC_STAC9221D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7683)
  #define HDA_CODEC_STAC9220	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7690)
 -#define HDA_CODEC_STAC922XD	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7681)
 -#define HDA_CODEC_STAC9227	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7618)
 -#define HDA_CODEC_STAC9271D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7627)
 -#define HDA_CODEC_STAC9205	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x76a0)
 -#define HDA_CODEC_STAC9872AK	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7662)
 +#define HDA_CODEC_STAC9200D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7691)
 +#define HDA_CODEC_IDT92HD005	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7698)
 +#define HDA_CODEC_IDT92HD005D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7699)
 +#define HDA_CODEC_STAC9205X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x76a0)
 +#define HDA_CODEC_STAC9205D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x76a1)
 +#define HDA_CODEC_STAC9204X	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x76a2)
 +#define HDA_CODEC_STAC9204D	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x76a3)
 +#define HDA_CODEC_STAC9220_A2	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7880)
 +#define HDA_CODEC_STAC9220_A1	HDA_CODEC_CONSTRUCT(SIGMATEL, 0x7882)
  #define HDA_CODEC_STACXXXX	HDA_CODEC_CONSTRUCT(SIGMATEL, 0xffff)
  
 -/*
 - * Conexant
 - *
 - * Ok, the truth is, I don't have any idea at all whether
 - * it is "Venice" or "Waikiki" or other unnamed CXyadayada. The only
 - * place that tell me it is "Venice" is from its Windows driver INF.
 - *
 - *  Venice - CX?????
 - * Waikiki - CX20551-22
 - */
 +/* IDT */
 +#define IDT_VENDORID		0x111d
 +#define HDA_CODEC_IDT92HD75BX	HDA_CODEC_CONSTRUCT(IDT, 0x7603)
 +#define HDA_CODEC_IDT92HD83C1X	HDA_CODEC_CONSTRUCT(IDT, 0x7604)
 +#define HDA_CODEC_IDT92HD81B1X	HDA_CODEC_CONSTRUCT(IDT, 0x7605)
 +#define HDA_CODEC_IDT92HD75B3	HDA_CODEC_CONSTRUCT(IDT, 0x7608)
 +#define HDA_CODEC_IDT92HD73D1	HDA_CODEC_CONSTRUCT(IDT, 0x7674)
 +#define HDA_CODEC_IDT92HD73C1	HDA_CODEC_CONSTRUCT(IDT, 0x7675)
 +#define HDA_CODEC_IDT92HD73E1	HDA_CODEC_CONSTRUCT(IDT, 0x7676)
 +#define HDA_CODEC_IDT92HD71B8	HDA_CODEC_CONSTRUCT(IDT, 0x76b0)
 +#define HDA_CODEC_IDT92HD71B7	HDA_CODEC_CONSTRUCT(IDT, 0x76b2)
 +#define HDA_CODEC_IDT92HD71B5	HDA_CODEC_CONSTRUCT(IDT, 0x76b6)
 +#define HDA_CODEC_IDT92HD83C1C	HDA_CODEC_CONSTRUCT(IDT, 0x76d4)
 +#define HDA_CODEC_IDT92HD81B1C	HDA_CODEC_CONSTRUCT(IDT, 0x76d5)
 +#define HDA_CODEC_IDTXXXX	HDA_CODEC_CONSTRUCT(IDT, 0xffff)
 +
 +/* Silicon Image */
 +#define SII_VENDORID	0x1095
 +#define HDA_CODEC_SII1392	HDA_CODEC_CONSTRUCT(SII, 0x1392)
 +#define HDA_CODEC_SIIXXXX	HDA_CODEC_CONSTRUCT(SII, 0xffff)
 +
 +/* Lucent/Agere */
 +#define AGERE_VENDORID	0x11c1
 +#define HDA_CODEC_AGEREXXXX	HDA_CODEC_CONSTRUCT(AGERE, 0xffff)
 +
 +/* Conexant */
  #define CONEXANT_VENDORID	0x14f1
 -#define HDA_CODEC_CXVENICE	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5045)
 -#define HDA_CODEC_CXWAIKIKI	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5047)
 +#define HDA_CODEC_CX20549	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5045)
 +#define HDA_CODEC_CX20551	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5047)
 +#define HDA_CODEC_CX20561	HDA_CODEC_CONSTRUCT(CONEXANT, 0x5051)
  #define HDA_CODEC_CXXXXX	HDA_CODEC_CONSTRUCT(CONEXANT, 0xffff)
  
  /* VIA */
 @@ -592,8 +698,28 @@ static const struct {
  #define HDA_CODEC_VT1709_5	HDA_CODEC_CONSTRUCT(VIA, 0xe715)
  #define HDA_CODEC_VT1709_6	HDA_CODEC_CONSTRUCT(VIA, 0xe716)
  #define HDA_CODEC_VT1709_7	HDA_CODEC_CONSTRUCT(VIA, 0xe717)
 +#define HDA_CODEC_VT1708B_0	HDA_CODEC_CONSTRUCT(VIA, 0xe720)
 +#define HDA_CODEC_VT1708B_1	HDA_CODEC_CONSTRUCT(VIA, 0xe721)
 +#define HDA_CODEC_VT1708B_2	HDA_CODEC_CONSTRUCT(VIA, 0xe722)
 +#define HDA_CODEC_VT1708B_3	HDA_CODEC_CONSTRUCT(VIA, 0xe723)
 +#define HDA_CODEC_VT1708B_4	HDA_CODEC_CONSTRUCT(VIA, 0xe724)
 +#define HDA_CODEC_VT1708B_5	HDA_CODEC_CONSTRUCT(VIA, 0xe725)
 +#define HDA_CODEC_VT1708B_6	HDA_CODEC_CONSTRUCT(VIA, 0xe726)
 +#define HDA_CODEC_VT1708B_7	HDA_CODEC_CONSTRUCT(VIA, 0xe727)
  #define HDA_CODEC_VTXXXX	HDA_CODEC_CONSTRUCT(VIA, 0xffff)
  
 +/* ATI */
 +#define HDA_CODEC_ATIRS600_1	HDA_CODEC_CONSTRUCT(ATI, 0x793c)
 +#define HDA_CODEC_ATIRS600_2	HDA_CODEC_CONSTRUCT(ATI, 0x7919)
 +#define HDA_CODEC_ATIRS690	HDA_CODEC_CONSTRUCT(ATI, 0x791a)
 +#define HDA_CODEC_ATIR6XX	HDA_CODEC_CONSTRUCT(ATI, 0xaa01)
 +#define HDA_CODEC_ATIXXXX	HDA_CODEC_CONSTRUCT(ATI, 0xffff)
 +
 +/* NVIDIA */
 +#define HDA_CODEC_NVIDIAXXXX	HDA_CODEC_CONSTRUCT(NVIDIA, 0xffff)
 +
 +/* INTEL */
 +#define HDA_CODEC_INTELXXXX	HDA_CODEC_CONSTRUCT(INTEL, 0xffff)
  
  /* Codecs */
  static const struct {
 @@ -602,8 +728,13 @@ static const struct {
  } hdac_codecs[] = {
  	{ HDA_CODEC_ALC260,    "Realtek ALC260" },
  	{ HDA_CODEC_ALC262,    "Realtek ALC262" },
 +	{ HDA_CODEC_ALC267,    "Realtek ALC267" },
  	{ HDA_CODEC_ALC268,    "Realtek ALC268" },
 +	{ HDA_CODEC_ALC269,    "Realtek ALC269" },
 +	{ HDA_CODEC_ALC272,    "Realtek ALC272" },
  	{ HDA_CODEC_ALC660,    "Realtek ALC660" },
 +	{ HDA_CODEC_ALC662,    "Realtek ALC662" },
 +	{ HDA_CODEC_ALC663,    "Realtek ALC663" },
  	{ HDA_CODEC_ALC861,    "Realtek ALC861" },
  	{ HDA_CODEC_ALC861VD,  "Realtek ALC861-VD" },
  	{ HDA_CODEC_ALC880,    "Realtek ALC880" },
 @@ -611,23 +742,77 @@ static const struct {
  	{ HDA_CODEC_ALC883,    "Realtek ALC883" },
  	{ HDA_CODEC_ALC885,    "Realtek ALC885" },
  	{ HDA_CODEC_ALC888,    "Realtek ALC888" },
 +	{ HDA_CODEC_ALC889,    "Realtek ALC889" },
 +	{ HDA_CODEC_AD1882,    "Analog Devices AD1882" },
 +	{ HDA_CODEC_AD1882A,   "Analog Devices AD1882A" },
 +	{ HDA_CODEC_AD1883,    "Analog Devices AD1883" },
 +	{ HDA_CODEC_AD1884,    "Analog Devices AD1884" },
 +	{ HDA_CODEC_AD1884A,   "Analog Devices AD1884A" },
  	{ HDA_CODEC_AD1981HD,  "Analog Devices AD1981HD" },
  	{ HDA_CODEC_AD1983,    "Analog Devices AD1983" },
  	{ HDA_CODEC_AD1984,    "Analog Devices AD1984" },
 +	{ HDA_CODEC_AD1984A,   "Analog Devices AD1984A" },
 +	{ HDA_CODEC_AD1984B,   "Analog Devices AD1984B" },
  	{ HDA_CODEC_AD1986A,   "Analog Devices AD1986A" },
 -	{ HDA_CODEC_AD1988,    "Analog Devices AD1988" },
 +	{ HDA_CODEC_AD1987,    "Analog Devices AD1987" },
 +	{ HDA_CODEC_AD1988,    "Analog Devices AD1988A" },
  	{ HDA_CODEC_AD1988B,   "Analog Devices AD1988B" },
 +	{ HDA_CODEC_AD1989B,   "Analog Devices AD1989B" },
  	{ HDA_CODEC_CMI9880,   "CMedia CMI9880" },
 +	{ HDA_CODEC_STAC9200D, "Sigmatel STAC9200D" },
 +	{ HDA_CODEC_STAC9204X, "Sigmatel STAC9204X" },
 +	{ HDA_CODEC_STAC9204D, "Sigmatel STAC9204D" },
 +	{ HDA_CODEC_STAC9205X, "Sigmatel STAC9205X" },
 +	{ HDA_CODEC_STAC9205D, "Sigmatel STAC9205D" },
 +	{ HDA_CODEC_STAC9220,  "Sigmatel STAC9220" },
 +	{ HDA_CODEC_STAC9220_A1, "Sigmatel STAC9220_A1" },
 +	{ HDA_CODEC_STAC9220_A2, "Sigmatel STAC9220_A2" },
  	{ HDA_CODEC_STAC9221,  "Sigmatel STAC9221" },
 +	{ HDA_CODEC_STAC9221_A2, "Sigmatel STAC9221_A2" },
  	{ HDA_CODEC_STAC9221D, "Sigmatel STAC9221D" },
 -	{ HDA_CODEC_STAC9220,  "Sigmatel STAC9220" },
  	{ HDA_CODEC_STAC922XD, "Sigmatel STAC9220D/9223D" },
 -	{ HDA_CODEC_STAC9227,  "Sigmatel STAC9227" },
 +	{ HDA_CODEC_STAC9227X, "Sigmatel STAC9227X" },
 +	{ HDA_CODEC_STAC9227D, "Sigmatel STAC9227D" },
 +	{ HDA_CODEC_STAC9228X, "Sigmatel STAC9228X" },
 +	{ HDA_CODEC_STAC9228D, "Sigmatel STAC9228D" },
 +	{ HDA_CODEC_STAC9229X, "Sigmatel STAC9229X" },
 +	{ HDA_CODEC_STAC9229D, "Sigmatel STAC9229D" },
 +	{ HDA_CODEC_STAC9230X, "Sigmatel STAC9230X" },
 +	{ HDA_CODEC_STAC9230D, "Sigmatel STAC9230D" },
 +	{ HDA_CODEC_STAC9250,  "Sigmatel STAC9250" },
 +	{ HDA_CODEC_STAC9251,  "Sigmatel STAC9251" },
 +	{ HDA_CODEC_STAC9271X, "Sigmatel STAC9271X" },
  	{ HDA_CODEC_STAC9271D, "Sigmatel STAC9271D" },
 -	{ HDA_CODEC_STAC9205,  "Sigmatel STAC9205" },
 -	{ HDA_CODEC_STAC9872AK,"Sigmatel STAC9872AK" },
 -	{ HDA_CODEC_CXVENICE,  "Conexant Venice" },
 -	{ HDA_CODEC_CXWAIKIKI, "Conexant Waikiki" },
 +	{ HDA_CODEC_STAC9272X, "Sigmatel STAC9272X" },
 +	{ HDA_CODEC_STAC9272D, "Sigmatel STAC9272D" },
 +	{ HDA_CODEC_STAC9273X, "Sigmatel STAC9273X" },
 +	{ HDA_CODEC_STAC9273D, "Sigmatel STAC9273D" },
 +	{ HDA_CODEC_STAC9274,  "Sigmatel STAC9274" },
 +	{ HDA_CODEC_STAC9274D, "Sigmatel STAC9274D" },
 +	{ HDA_CODEC_STAC9274X5NH, "Sigmatel STAC9274X5NH" },
 +	{ HDA_CODEC_STAC9274D5NH, "Sigmatel STAC9274D5NH" },
 +	{ HDA_CODEC_STAC9872AK, "Sigmatel STAC9872AK" },
 +	{ HDA_CODEC_IDT92HD005, "IDT 92HD005" },
 +	{ HDA_CODEC_IDT92HD005D, "IDT 92HD005D" },
 +	{ HDA_CODEC_IDT92HD206X, "IDT 92HD206X" },
 +	{ HDA_CODEC_IDT92HD206D, "IDT 92HD206D" },
 +	{ HDA_CODEC_IDT92HD700X, "IDT 92HD700X" },
 +	{ HDA_CODEC_IDT92HD700D, "IDT 92HD700D" },
 +	{ HDA_CODEC_IDT92HD71B5, "IDT 92HD71B5" },
 +	{ HDA_CODEC_IDT92HD71B7, "IDT 92HD71B7" },
 +	{ HDA_CODEC_IDT92HD71B8, "IDT 92HD71B8" },
 +	{ HDA_CODEC_IDT92HD73C1, "IDT 92HD73C1" },
 +	{ HDA_CODEC_IDT92HD73D1, "IDT 92HD73D1" },
 +	{ HDA_CODEC_IDT92HD73E1, "IDT 92HD73E1" },
 +	{ HDA_CODEC_IDT92HD75B3, "IDT 92HD75B3" },
 +	{ HDA_CODEC_IDT92HD75BX, "IDT 92HD75BX" },
 +	{ HDA_CODEC_IDT92HD81B1C, "IDT 92HD81B1C" },
 +	{ HDA_CODEC_IDT92HD81B1X, "IDT 92HD81B1X" },
 +	{ HDA_CODEC_IDT92HD83C1C, "IDT 92HD83C1C" },
 +	{ HDA_CODEC_IDT92HD83C1X, "IDT 92HD83C1X" },
 +	{ HDA_CODEC_CX20549,   "Conexant CX20549 (Venice)" },
 +	{ HDA_CODEC_CX20551,   "Conexant CX20551 (Waikiki)" },
 +	{ HDA_CODEC_CX20561,   "Conexant CX20561 (Hermosa)" },
  	{ HDA_CODEC_VT1708_8,  "VIA VT1708_8" },
  	{ HDA_CODEC_VT1708_9,  "VIA VT1708_9" },
  	{ HDA_CODEC_VT1708_A,  "VIA VT1708_A" },
 @@ -640,136 +825,41 @@ static const struct {
  	{ HDA_CODEC_VT1709_5,  "VIA VT1709_5" },
  	{ HDA_CODEC_VT1709_6,  "VIA VT1709_6" },
  	{ HDA_CODEC_VT1709_7,  "VIA VT1709_7" },
 +	{ HDA_CODEC_VT1708B_0, "VIA VT1708B_0" },
 +	{ HDA_CODEC_VT1708B_1, "VIA VT1708B_1" },
 +	{ HDA_CODEC_VT1708B_2, "VIA VT1708B_2" },
 +	{ HDA_CODEC_VT1708B_3, "VIA VT1708B_3" },
 +	{ HDA_CODEC_VT1708B_4, "VIA VT1708B_4" },
 +	{ HDA_CODEC_VT1708B_5, "VIA VT1708B_5" },
 +	{ HDA_CODEC_VT1708B_6, "VIA VT1708B_6" },
 +	{ HDA_CODEC_VT1708B_7, "VIA VT1708B_7" },
 +	{ HDA_CODEC_ATIRS600_1,"ATI RS600 HDMI" },
 +	{ HDA_CODEC_ATIRS600_2,"ATI RS600 HDMI" },
 +	{ HDA_CODEC_ATIRS690,  "ATI RS690/780 HDMI" },
 +	{ HDA_CODEC_ATIR6XX,   "ATI R6xx HDMI" },
 +	{ HDA_CODEC_SII1392,   "Silicon Image SiI1392 HDMI" },
  	/* Unknown codec */
  	{ HDA_CODEC_ALCXXXX,   "Realtek (Unknown)" },
  	{ HDA_CODEC_ADXXXX,    "Analog Devices (Unknown)" },
  	{ HDA_CODEC_CMIXXXX,   "CMedia (Unknown)" },
  	{ HDA_CODEC_STACXXXX,  "Sigmatel (Unknown)" },
 +	{ HDA_CODEC_SIIXXXX,   "Silicon Image (Unknown)" },
 +	{ HDA_CODEC_AGEREXXXX, "Lucent/Agere Systems (Unknown)" },
  	{ HDA_CODEC_CXXXXX,    "Conexant (Unknown)" },
  	{ HDA_CODEC_VTXXXX,    "VIA (Unknown)" },
 +	{ HDA_CODEC_ATIXXXX,   "ATI (Unknown)" },
 +	{ HDA_CODEC_NVIDIAXXXX,"NVidia (Unknown)" },
 +	{ HDA_CODEC_INTELXXXX, "Intel (Unknown)" },
 +	{ HDA_CODEC_IDTXXXX,   "IDT (Unknown)" },
  };
  #define HDAC_CODECS_LEN	(sizeof(hdac_codecs) / sizeof(hdac_codecs[0]))
  
 -enum {
 -	HDAC_HP_SWITCH_CTL,
 -	HDAC_HP_SWITCH_CTRL,
 -	HDAC_HP_SWITCH_DEBUG
 -};
 -
 -static const struct {
 -	uint32_t model;
 -	uint32_t id;
 -	int type;
 -	int inverted;
 -	int polling;
 -	int execsense;
 -	nid_t hpnid;
 -	nid_t spkrnid[8];
 -	nid_t eapdnid;
 -} hdac_hp_switch[] = {
 -	/* Specific OEM models */
 -	{ HP_V3000_SUBVENDOR, HDA_CODEC_CXVENICE, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 17, { 16, -1 }, 16 },
 -	/* { HP_XW4300_SUBVENDOR, HDA_CODEC_ALC260, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 21, { 16, 17, -1 }, -1 } */
 -	/* { HP_3010_SUBVENDOR,  HDA_CODEC_ALC260, HDAC_HP_SWITCH_DEBUG,
 -	    0, 1, 0, 16, { 15, 18, 19, 20, 21, -1 }, -1 }, */
 -	{ HP_NX7400_SUBVENDOR, HDA_CODEC_AD1981HD, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 6, { 5, -1 }, 5 },
 -	{ HP_NX6310_SUBVENDOR, HDA_CODEC_AD1981HD, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 6, { 5, -1 }, 5 },
 -	{ HP_NX6325_SUBVENDOR, HDA_CODEC_AD1981HD, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 6, { 5, -1 }, 5 },
 -	/* { HP_DC7700_SUBVENDOR, HDA_CODEC_ALC262, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 21, { 22, 27, -1 }, -1 }, */
 -	{ TOSHIBA_U200_SUBVENDOR, HDA_CODEC_AD1981HD, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 6, { 5, -1 }, -1 },
 -	{ TOSHIBA_A135_SUBVENDOR, HDA_CODEC_ALC861VD, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 27, { 20, -1 }, -1 },
 -	{ DELL_D820_SUBVENDOR, HDA_CODEC_STAC9220, HDAC_HP_SWITCH_CTRL,
 -	    0, 0, -1, 13, { 14, -1 }, -1 },
 -	{ DELL_I1300_SUBVENDOR, HDA_CODEC_STAC9220, HDAC_HP_SWITCH_CTRL,
 -	    0, 0, -1, 13, { 14, -1 }, -1 },
 -	{ DELL_OPLX745_SUBVENDOR, HDA_CODEC_AD1983, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 6, { 5, 7, -1 }, -1 },
 -	{ DELL_D630_SUBVENDOR, HDA_CODEC_STAC9205, HDAC_HP_SWITCH_CTRL,
 -	    0, 0, -1, 10, { 13, -1 }, -1 },
 -	{ DELL_V1500_SUBVENDOR, HDA_CODEC_STAC9205, HDAC_HP_SWITCH_CTRL,
 -	    0, 0, -1, 10, { 13, -1 }, -1 },
 -	{ APPLE_MB3_SUBVENDOR, HDA_CODEC_ALC885, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 21, { 20, 22, -1 }, -1 },
 -	{ APPLE_INTEL_MAC, HDA_CODEC_STAC9221, HDAC_HP_SWITCH_CTRL,
 -	    0, 0, -1, 10, { 13, -1 }, -1 },
 -	{ LENOVO_3KN100_SUBVENDOR, HDA_CODEC_AD1986A, HDAC_HP_SWITCH_CTL,
 -	    1, 0, -1, 26, { 27, -1 }, -1 },
 -	{ LENOVO_3KN200_SUBVENDOR, HDA_CODEC_ALC861VD, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 27, { 20, -1 }, -1 },
 -	/* { LENOVO_TCA55_SUBVENDOR, HDA_CODEC_AD1986A, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 26, { 27, 28, 29, 30, -1 }, -1 }, */
 -	{ LG_LW20_SUBVENDOR, HDA_CODEC_ALC880, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 27, { 20, -1 }, -1 },
 -	{ ACER_A5050_SUBVENDOR, HDA_CODEC_ALC883, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 20, { 21, -1 }, -1 },
 -	{ ACER_3681WXM_SUBVENDOR, HDA_CODEC_ALC883, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 20, { 21, -1 }, -1 },
 -	{ ACER_A4520_SUBVENDOR, HDA_CODEC_ALC268, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 20, { 21, -1 }, -1 },
 -	{ ACER_A4710_SUBVENDOR, HDA_CODEC_ALC268, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 20, { 21, -1 }, -1 },
 -	{ ACER_A4715_SUBVENDOR, HDA_CODEC_ALC268, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 20, { 21, -1 }, -1 },
 -	{ UNIWILL_9080_SUBVENDOR, HDA_CODEC_ALC883, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 20, { 21, -1 }, -1 },
 -	{ MSI_MS1034_SUBVENDOR, HDA_CODEC_ALC883, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 20, { 27, -1 }, -1 },
 -	{ MSI_MS034A_SUBVENDOR, HDA_CODEC_ALC883, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 20, { 27, -1 }, -1 },
 -	{ FS_SI1848_SUBVENDOR, HDA_CODEC_ALC883, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 20, { 21, -1 }, -1 },
 -	{ FL_S7020D_SUBVENDOR, HDA_CODEC_ALC260, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 20, { 16, -1 }, -1 },
 -	{ FL_U1010_SUBVENDOR, HDA_CODEC_ALC262, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 20, { 21, -1 }, -1 },
 -	/*
 -	 * All models that at least come from the same vendor with
 -	 * simmilar codec.
 -	 */
 -	{ HP_ALL_SUBVENDOR, HDA_CODEC_CXVENICE, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 17, { 16, -1 }, 16 },
 -	{ HP_ALL_SUBVENDOR, HDA_CODEC_AD1981HD, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 6, { 5, -1 }, 5 },
 -	{ TOSHIBA_ALL_SUBVENDOR, HDA_CODEC_AD1981HD, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 6, { 5, -1 }, -1 },
 -	{ DELL_ALL_SUBVENDOR, HDA_CODEC_STAC9220, HDAC_HP_SWITCH_CTRL,
 -	    0, 0, -1, 13, { 14, -1 }, -1 },
 -#if 0
 -	{ LENOVO_ALL_SUBVENDOR, HDA_CODEC_AD1986A, HDAC_HP_SWITCH_CTL,
 -	    1, 0, -1, 26, { 27, -1 }, -1 },
 -	{ ACER_ALL_SUBVENDOR, HDA_CODEC_ALC883, HDAC_HP_SWITCH_CTL,
 -	    0, 0, -1, 20, { 21, -1 }, -1 },
 -#endif
 -};
 -#define HDAC_HP_SWITCH_LEN	\
 -		(sizeof(hdac_hp_switch) / sizeof(hdac_hp_switch[0]))
 -
 -static const struct {
 -	uint32_t model;
 -	uint32_t id;
 -	nid_t eapdnid;
 -	int hp_switch;
 -} hdac_eapd_switch[] = {
 -	{ HP_V3000_SUBVENDOR, HDA_CODEC_CXVENICE, 16, 1 },
 -	{ HP_NX7400_SUBVENDOR, HDA_CODEC_AD1981HD, 5, 1 },
 -	{ HP_NX6310_SUBVENDOR, HDA_CODEC_AD1981HD, 5, 1 },
 -};
 -#define HDAC_EAPD_SWITCH_LEN	\
 -		(sizeof(hdac_eapd_switch) / sizeof(hdac_eapd_switch[0]))
  
  /****************************************************************************
   * Function prototypes
   ****************************************************************************/
  static void	hdac_intr_handler(void *);
 -static int	hdac_reset(struct hdac_softc *);
 +static int	hdac_reset(struct hdac_softc *, int);
  static int	hdac_get_capabilities(struct hdac_softc *);
  static void	hdac_dma_cb(void *, bus_dma_segment_t *, int, int);
  static int	hdac_dma_alloc(struct hdac_softc *,
 @@ -783,10 +873,10 @@ static void	hdac_corb_init(struct hdac_s
  static void	hdac_rirb_init(struct hdac_softc *);
  static void	hdac_corb_start(struct hdac_softc *);
  static void	hdac_rirb_start(struct hdac_softc *);
 -static void	hdac_scan_codecs(struct hdac_softc *, int);
 -static int	hdac_probe_codec(struct hdac_codec *);
 -static struct	hdac_devinfo *hdac_probe_function(struct hdac_codec *, nid_t);
 -static void	hdac_add_child(struct hdac_softc *, struct hdac_devinfo *);
 +static void	hdac_scan_codecs(struct hdac_softc *);
 +static void	hdac_probe_codec(struct hdac_codec *);
 +static void	hdac_probe_function(struct hdac_codec *, nid_t);
 +static int	hdac_pcmchannel_setup(struct hdac_chan *);
  
  static void	hdac_attach2(void *);
  
 @@ -798,34 +888,37 @@ static void	hdac_command_send_internal(s
  static int	hdac_probe(device_t);
  static int	hdac_attach(device_t);
  static int	hdac_detach(device_t);
 +static int	hdac_suspend(device_t);
 +static int	hdac_resume(device_t);
  static void	hdac_widget_connection_select(struct hdac_widget *, uint8_t);
  static void	hdac_audio_ctl_amp_set(struct hdac_audio_ctl *,
  						uint32_t, int, int);
  static struct	hdac_audio_ctl *hdac_audio_ctl_amp_get(struct hdac_devinfo *,
 -							nid_t, int, int);
 +							nid_t, int, int, int);
  static void	hdac_audio_ctl_amp_set_internal(struct hdac_softc *,
  				nid_t, nid_t, int, int, int, int, int, int);
 -static int	hdac_audio_ctl_ossmixer_getnextdev(struct hdac_devinfo *);
  static struct	hdac_widget *hdac_widget_get(struct hdac_devinfo *, nid_t);
  
  static int	hdac_rirb_flush(struct hdac_softc *sc);
  static int	hdac_unsolq_flush(struct hdac_softc *sc);
  
 +static void	hdac_dump_pin_config(struct hdac_widget *w, uint32_t conf);
 +
  #define hdac_command(a1, a2, a3)	\
  		hdac_command_sendone_internal(a1, a2, a3)
  
 -#define hdac_codec_id(d)						\
 -		((uint32_t)((d == NULL) ? 0x00000000 :			\
 -		((((uint32_t)(d)->vendor_id & 0x0000ffff) << 16) |	\
 -		((uint32_t)(d)->device_id & 0x0000ffff))))
 +#define hdac_codec_id(c)							\
 +		((uint32_t)((c == NULL) ? 0x00000000 :	\
 +		((((uint32_t)(c)->vendor_id & 0x0000ffff) << 16) |	\
 +		((uint32_t)(c)->device_id & 0x0000ffff))))
  
  static char *
 -hdac_codec_name(struct hdac_devinfo *devinfo)
 +hdac_codec_name(struct hdac_codec *codec)
  {
  	uint32_t id;
  	int i;
  
 -	id = hdac_codec_id(devinfo);
 +	id = hdac_codec_id(codec);
  
  	for (i = 0; i < HDAC_CODECS_LEN; i++) {
  		if (HDA_DEV_MATCH(hdac_codecs[i].id, id))
 @@ -836,20 +929,6 @@ hdac_codec_name(struct hdac_devinfo *dev
  }
  
  static char *
 -hdac_audio_ctl_ossmixer_mask2name(uint32_t devmask)
 -{
 -	static char *ossname[] = SOUND_DEVICE_NAMES;
 -	static char *unknown = "???";
 -	int i;
 -
 -	for (i = SOUND_MIXER_NRDEVICES - 1; i >= 0; i--) {
 -		if (devmask & (1 << i))
 -			return (ossname[i]);
 -	}
 -	return (unknown);
 -}
 -
 -static void
  hdac_audio_ctl_ossmixer_mask2allname(uint32_t mask, char *buf, size_t len)
  {
  	static char *ossname[] = SOUND_DEVICE_NAMES;
 @@ -864,6 +943,7 @@ hdac_audio_ctl_ossmixer_mask2allname(uin
  			first = 0;
  		}
  	}
 +	return (buf);
  }
  
  static struct hdac_audio_ctl *
 @@ -879,48 +959,46 @@ hdac_audio_ctl_each(struct hdac_devinfo 
  }
  
  static struct hdac_audio_ctl *
 -hdac_audio_ctl_amp_get(struct hdac_devinfo *devinfo, nid_t nid,
 +hdac_audio_ctl_amp_get(struct hdac_devinfo *devinfo, nid_t nid, int dir,
  						int index, int cnt)
  {
 -	struct hdac_audio_ctl *ctl, *retctl = NULL;
 -	int i, at, atindex, found = 0;
 +	struct hdac_audio_ctl *ctl;
 +	int i, found = 0;
  
  	if (devinfo == NULL || devinfo->function.audio.ctl == NULL)
  		return (NULL);
  
 -	at = cnt;
 -	if (at == 0)
 -		at = 1;
 -	else if (at < 0)
 -		at = -1;
 -	atindex = index;
 -	if (atindex < 0)
 -		atindex = -1;
 -
  	i = 0;
  	while ((ctl = hdac_audio_ctl_each(devinfo, &i)) != NULL) {
 -		if (ctl->enable == 0 || ctl->widget == NULL)
 +		if (ctl->enable == 0)
  			continue;
 -		if (!(ctl->widget->nid == nid && (atindex == -1 ||
 -		    ctl->index == atindex)))
 +		if (ctl->widget->nid != nid)
 +			continue;
 +		if (dir && ctl->ndir != dir)
 +			continue;
 +		if (index >= 0 && ctl->ndir == HDA_CTL_IN &&
 +		    ctl->dir == ctl->ndir && ctl->index != index)
  			continue;
  		found++;
 -		if (found == cnt)
 +		if (found == cnt || cnt <= 0)
  			return (ctl);
 -		retctl = ctl;
  	}
  
 -	return ((at == -1) ? retctl : NULL);
 +	return (NULL);
  }
  
 +/*
 + * Jack detection (Speaker/HP redirection) event handler.
 + */
  static void
  hdac_hp_switch_handler(struct hdac_devinfo *devinfo)
  {
 +	struct hdac_audio_as *as;
  	struct hdac_softc *sc;
  	struct hdac_widget *w;
  	struct hdac_audio_ctl *ctl;
 -	uint32_t val, id, res;
 -	int i = 0, j, timeout, forcemute;
 +	uint32_t val, res;
 +	int i, j;
  	nid_t cad;
  
  	if (devinfo == NULL || devinfo->codec == NULL ||
 @@ -929,84 +1007,47 @@ hdac_hp_switch_handler(struct hdac_devin
  
  	sc = devinfo->codec->sc;
  	cad = devinfo->codec->cad;
 -	id = hdac_codec_id(devinfo);
 -	for (i = 0; i < HDAC_HP_SWITCH_LEN; i++) {
 -		if (HDA_DEV_MATCH(hdac_hp_switch[i].model,
 -		    sc->pci_subvendor) &&
 -		    hdac_hp_switch[i].id == id)
 -			break;
 -	}
 -
 -	if (i >= HDAC_HP_SWITCH_LEN)
 -		return;
 -
 -	forcemute = 0;
 -	if (hdac_hp_switch[i].eapdnid != -1) {
 -		w = hdac_widget_get(devinfo, hdac_hp_switch[i].eapdnid);
 -		if (w != NULL && w->param.eapdbtl != HDAC_INVALID)
 -			forcemute = (w->param.eapdbtl &
 -			    HDA_CMD_SET_EAPD_BTL_ENABLE_EAPD) ? 0 : 1;
 -	}
 -
 -	if (hdac_hp_switch[i].execsense != -1)
 -		hdac_command(sc,
 -		    HDA_CMD_SET_PIN_SENSE(cad, hdac_hp_switch[i].hpnid,
 -		    hdac_hp_switch[i].execsense), cad);
 +	as = devinfo->function.audio.as;
 +	for (i = 0; i < devinfo->function.audio.ascnt; i++) {
 +		if (as[i].hpredir < 0)
 +			continue;
 +	
 +		w = hdac_widget_get(devinfo, as[i].pins[15]);
 +		if (w == NULL || w->enable == 0 || w->type !=
 +		    HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_PIN_COMPLEX)
 +			continue;
  
 -	timeout = 10000;
 -	do {
  		res = hdac_command(sc,
 -		    HDA_CMD_GET_PIN_SENSE(cad, hdac_hp_switch[i].hpnid),
 -		    cad);
 -		if (hdac_hp_switch[i].execsense == -1 || res != 0x7fffffff)
 -			break;
 -		DELAY(10);
 -	} while (--timeout != 0);
 +		    HDA_CMD_GET_PIN_SENSE(cad, as[i].pins[15]), cad);
  
 -	HDA_BOOTVERBOSE(
 -		device_printf(sc->dev,
 -		    "HDA_DEBUG: Pin sense: nid=%d timeout=%d res=0x%08x\n",
 -		    hdac_hp_switch[i].hpnid, timeout, res);
 -	);
 +		HDA_BOOTVERBOSE(
 +			device_printf(sc->dev,
 +			    "Pin sense: nid=%d res=0x%08x\n",
 +			    as[i].pins[15], res);
 +		);
  
 -	res = HDA_CMD_GET_PIN_SENSE_PRESENCE_DETECT(res);
 -	res ^= hdac_hp_switch[i].inverted;
 +		res = HDA_CMD_GET_PIN_SENSE_PRESENCE_DETECT(res);
 +		if (devinfo->function.audio.quirks & HDA_QUIRK_SENSEINV)
 +			res ^= 1;
  
 -	switch (hdac_hp_switch[i].type) {
 -	case HDAC_HP_SWITCH_CTL:
 +		/* (Un)Mute headphone pin. */
  		ctl = hdac_audio_ctl_amp_get(devinfo,
 -		    hdac_hp_switch[i].hpnid, 0, 1);
 -		if (ctl != NULL) {
 -			val = (res != 0 && forcemute == 0) ?
 -			    HDA_AMP_MUTE_NONE : HDA_AMP_MUTE_ALL;
 -			if (val != ctl->muted) {
 -				ctl->muted = val;
 +		    as[i].pins[15], HDA_CTL_IN, -1, 1);
 +		if (ctl != NULL && ctl->mute) {
 +			/* If pin has muter - use it. */
 +			val = (res != 0) ? 0 : 1;
 +			if (val != ctl->forcemute) {
 +				ctl->forcemute = val;
  				hdac_audio_ctl_amp_set(ctl,
 -				    HDA_AMP_MUTE_DEFAULT, ctl->left,
 -				    ctl->right);
 +				    HDA_AMP_MUTE_DEFAULT,
 +				    HDA_AMP_VOL_DEFAULT, HDA_AMP_VOL_DEFAULT);
  			}
 -		}
 -		for (j = 0; hdac_hp_switch[i].spkrnid[j] != -1; j++) {
 -			ctl = hdac_audio_ctl_amp_get(devinfo,
 -			    hdac_hp_switch[i].spkrnid[j], 0, 1);
 -			if (ctl == NULL)
 -				continue;
 -			val = (res != 0 || forcemute == 1) ?
 -			    HDA_AMP_MUTE_ALL : HDA_AMP_MUTE_NONE;
 -			if (val == ctl->muted)
 -				continue;
 -			ctl->muted = val;
 -			hdac_audio_ctl_amp_set(ctl, HDA_AMP_MUTE_DEFAULT,
 -			    ctl->left, ctl->right);
 -		}
 -		break;
 -	case HDAC_HP_SWITCH_CTRL:
 -		if (res != 0) {
 -			/* HP in */
 -			w = hdac_widget_get(devinfo, hdac_hp_switch[i].hpnid);
 +		} else {
 +			/* If there is no muter - disable pin output. */
 +			w = hdac_widget_get(devinfo, as[i].pins[15]);
  			if (w != NULL && w->type ==
  			    HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_PIN_COMPLEX) {
 -				if (forcemute == 0)
 +				if (res != 0)
  					val = w->wclass.pin.ctrl |
 
 *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: patched->closed 
State-Changed-By: mav 
State-Changed-When: Wed Jan 7 17:10:35 UTC 2009 
State-Changed-Why:  
Merged to 7-STABLE. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=120144 
>Unformatted:
