From gnats@FreeBSD.org  Thu Nov  1 00:19:26 2007
Return-Path: <gnats@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C25FA16A418
	for <freebsd-gnats-submit@hub.freebsd.org>; Thu,  1 Nov 2007 00:19:26 +0000 (UTC)
	(envelope-from gnats@FreeBSD.org)
Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28])
	by mx1.freebsd.org (Postfix) with ESMTP id B02BF13C48E
	for <freebsd-gnats-submit@hub.freebsd.org>; Thu,  1 Nov 2007 00:19:26 +0000 (UTC)
	(envelope-from gnats@FreeBSD.org)
Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1])
	by freefall.freebsd.org (8.14.1/8.14.1) with ESMTP id lA10JQEw064950
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 1 Nov 2007 00:19:26 GMT
	(envelope-from gnats@freefall.freebsd.org)
Received: (from gnats@localhost)
	by freefall.freebsd.org (8.14.1/8.14.1/Submit) id lA10JQVE064949;
	Thu, 1 Nov 2007 00:19:26 GMT
	(envelope-from gnats)
Message-Id: <200711010019.lA10JQVE064949@freefall.freebsd.org>
Date: Thu, 1 Nov 2007 00:19:26 GMT
From: Georgi Georgiev <drgeorgiev@mail.ru>
To: freebsd-gnats-submit@FreeBSD.org
Subject: [snd_hda] microphone is not working with snd_hda on FreeBSD AMD64
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         117729
>Category:       kern
>Synopsis:       [snd_hda] microphone is not working with snd_hda on FreeBSD AMD64
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-multimedia
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Nov 01 00:20:01 UTC 2007
>Closed-Date:    Wed Jan 07 17:13:40 UTC 2009
>Last-Modified:  Wed Jan 07 17:13:40 UTC 2009
>Originator:     Georgi Georgiev
>Release:        FreeBSD 7.0-BETA1
>Organization:
>Environment:
FreeBSD gg . gg 7.0-BETA1 FreeBSD 7.0-BETA1 #0: Mon Oct 29 12:56:53 EET 2007     gg@gg . gg:/usr/obj/usr/src/sys/GKERNEL  amd64

>Description:
Microphone is not working with snd_hda driver.  I tried switching between
all record sources with no luck 

this is a Notebuck Acer Aspire 5630 
http://global.acer.com/products/notebook/as5630.htm

here is may dmesg 

Copyright (c) 1992-2007 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 7.0-BETA1 #0: Mon Oct 29 12:56:53 EET 2007
    gg@gg.gg:/usr/obj/usr/src/sys/GKERNEL
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Core(TM)2 CPU         T5200  @ 1.60GHz (1607.18-MHz K8-class CPU)
  Origin = "GenuineIntel"  Id = 0x6f6  Stepping = 6
  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=0xe39d<SSE3,RSVD2,MON,DS_CPL,EST,TM2,SSSE3,CX16,xTPR,PDCM>
  AMD Features=0x20100800<SYSCALL,NX,LM>
  AMD Features2=0x1<LAHF>
  Cores per package: 2
usable memory = 1590841344 (1517 MB)
avail memory  = 1534431232 (1463 MB)
ACPI APIC Table: <Acer   Grape   >
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
ioapic0: Changing APIC ID to 1
ioapic0 <Version 2.0> irqs 0-23 on motherboard
ichwd module loaded
kbd1 at kbdmux0
ath_hal: 0.9.20.3 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
acpi0: <ACRSYS ACRPRDCT> on motherboard
acpi0: [ITHREAD]
acpi0: Power Button (fixed)
Timecounter "HPET" frequency 14318180 Hz quality 900
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0
acpi_ec0: <Embedded Controller: GPE 0x19> port 0x62,0x66 on acpi0
cpu0: <ACPI CPU> on acpi0
coretemp0: <CPU On-Die Thermal Sensors> on cpu0
est0: <Enhanced SpeedStep Frequency Control> on cpu0
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 6130c2506000613
device_attach: est0 attach returned 6
p4tcc0: <CPU Frequency Thermal Control> on cpu0
cpu1: <ACPI CPU> on acpi0
coretemp1: <CPU On-Die Thermal Sensors> on cpu1
est1: <Enhanced SpeedStep Frequency Control> on cpu1
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 6130c2506000613
device_attach: est1 attach returned 6
p4tcc1: <CPU Frequency Thermal Control> on cpu1
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_button0: <Sleep Button> on acpi0
acpi_button1: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
vgapci0: <VGA-compatible display> port 0x5088-0x508f mem 0xd0200000-0xd027ffff,0xc0000000-0xcfffffff,0xd0300000-0xd033ffff irq 16 at device 2.0 on pci0
agp0: <Intel 82945GM (945GM GMCH) SVGA controller> on vgapci0
agp0: detected 7932k stolen memory
agp0: aperture size is 256M
drm0: <Intel i945GM> on vgapci0
info: [drm] AGP at 0xc0000000 256MB
info: [drm] Initialized i915 1.5.0 20060119
vgapci1: <VGA-compatible display> mem 0xd0280000-0xd02fffff at device 2.1 on pci0
pcm0: <Intel 82801G High Definition Audio Controller> mem 0xd0340000-0xd0343fff irq 22 at device 27.0 on pci0
pcm0: [ITHREAD]
pcib1: <ACPI PCI-PCI bridge> irq 17 at device 28.0 on pci0
pci2: <ACPI PCI bus> on pcib1
pcib2: <ACPI PCI-PCI bridge> irq 16 at device 28.1 on pci0
pci3: <ACPI PCI bus> on pcib2
pcib3: <ACPI PCI-PCI bridge> irq 18 at device 28.2 on pci0
pci4: <ACPI PCI bus> on pcib3
pcib4: <ACPI PCI-PCI bridge> irq 19 at device 28.3 on pci0
pci5: <ACPI PCI bus> on pcib4
pci5: <network> at device 0.0 (no driver attached)
uhci0: <UHCI (generic) USB controller> port 0x50a0-0x50bf irq 23 at device 29.0 on pci0
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 0x50c0-0x50df irq 19 at device 29.1 on pci0
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 0x50e0-0x50ff irq 18 at device 29.2 on pci0
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
uhci3: <UHCI (generic) USB controller> port 0x5400-0x541f irq 16 at device 29.3 on pci0
uhci3: [GIANT-LOCKED]
uhci3: [ITHREAD]
usb3: <UHCI (generic) USB controller> on uhci3
usb3: USB revision 1.0
uhub3: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb3
uhub3: 2 ports with 2 removable, self powered
ehci0: <Intel 82801GB/R (ICH7) USB 2.0 controller> mem 0xd0544000-0xd05443ff irq 23 at device 29.7 on pci0
ehci0: [GIANT-LOCKED]
ehci0: [ITHREAD]
usb4: EHCI version 1.0
usb4: companion controllers, 2 ports each: usb0 usb1 usb2 usb3
usb4: <Intel 82801GB/R (ICH7) USB 2.0 controller> on ehci0
usb4: USB revision 2.0
uhub4: <Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1> on usb4
uhub4: 8 ports with 8 removable, self powered
pcib5: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci6: <ACPI PCI bus> on pcib5
bfe0: <Broadcom BCM4401-B0 Fast Ethernet> mem 0xd0000000-0xd0001fff irq 21 at device 1.0 on pci6
miibus0: <MII bus> on bfe0
bmtphy0: <BCM4401 10/100baseTX PHY> PHY 1 on miibus0
bmtphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
bfe0: using obsoleted if_watchdog interface
bfe0: Ethernet address: 00:16:d4:af:55:a5
bfe0: [ITHREAD]
cbb0: <PCI-CardBus Bridge> irq 16 at device 4.0 on pci6
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
cbb0: [ITHREAD]
pci6: <memory, flash> at device 4.1 (no driver attached)
pci6: <base peripheral> at device 4.2 (no driver attached)
pci6: <memory, flash> at device 4.3 (no driver attached)
pci6: <memory, flash> at device 4.4 (no driver attached)
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH7M SATA300 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x5440-0x544f at device 31.2 on pci0
ata0: <ATA channel 0> on atapci0
ata0: [ITHREAD]
ata1: <ATA channel 1> on atapci0
ata1: [ITHREAD]
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
acpi_tz0: <Thermal Zone> on acpi0
acpi_tz1: <Thermal Zone> on acpi0
battery0: <ACPI Control Method Battery> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0
acpi_acad0: <AC Adapter> on acpi0
ichwd0: <Intel ICH7M watchdog timer> on isa0
ichwd0: Intel ICH7M watchdog timer (ICH7 or equivalent)
orm0: <ISA Option ROMs> at iomem 0xcf000-0xd07ff,0xe0000-0xe17ff,0xe3800-0xe3fff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounters tick every 1.000 msec
ad0: 76319MB <WDC WD800BEVS-22RST0 04.01G04> at ata0-master SATA150
acd0: DVDR <HL-DT-ST DVDRAM GSA-T10N/PP02> at ata1-master UDMA33
pcm0: <HDA Codec: Realtek ALC883>
pcm0: <HDA Driver Revision: 20071020_0048>
acd0: FAILURE - INQUIRY ILLEGAL REQUEST asc=0x24 ascq=0x00 sks=0x40 0x00 0x01
acd0: FAILURE - INQUIRY ILLEGAL REQUEST asc=0x24 ascq=0x00 sks=0x40 0x00 0x01
cd0 at ata1 bus 0 target 0 lun 0
cd0: <HL-DT-ST DVDRAM GSA-T10N PP02> Removable CD-ROM SCSI-0 device 
cd0: 33.000MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not presentS
MP: AP CPU #1 Launched!

here is output from sndstat
 cat /dev/sndstat 
FreeBSD Audio Driver (newpcm: 64bit 2007061600/amd64)
Installed devices:
pcm0: <Intel 82801G High Definition Audio Controller> at memory 0xd0340000 irq 22 kld snd_hda [20071020_0048] [MPSAFE] (1p:20v/1r:20v channels duplex default)
        [pcm0:play:dsp0.p0]: spd 48000, fmt 0x10000010, flags 0x00101000, 0x00000020
        interrupts 188, underruns 0, feed 188, ready 0 [b:4096/2048/2|bs:4096/2048/2]
        {userland} -> feeder_vchan(0x10000010) -> feeder_volume(0x10000010) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp0]: spd 8000/48000, fmt 0x00000008/0x10000010, flags 0x10000000, 0x00000008
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:4096/128/32]
        {userland} -> feeder_root(0x00000008) -> feeder_8to16(0x00000008 -> 0x00000080) -> feeder_rate(8000 -> 48000) -> feeder_monotostereo16(0x00000080 -> 0x10000080) -> feeder_sign16(0x10000080 -> 0x10000010) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp1]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp2]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp3]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp4]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp5]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp6]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp7]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp8]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp9]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp10]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp11]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp12]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp13]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp14]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp15]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp16]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp17]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp18]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp19]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        [pcm0:record:dsp0.r0]: spd 48000, fmt 0x10000010, flags 0x00101000, 0x00000000
        interrupts 3007, overruns 0, feed 6014, hfree 4096, sfree 4096 [b:4096/2048/2|bs:4096/2048/2]
        {hardware} -> feeder_root(0x10000010) -> feeder_vchan(0x10000010) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr0]: spd 48000, fmt 0x00000010/0x10000010, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 32768 [b:0/0/0|bs:32768/1024/32]
        {hardware} -> feeder_root(0x10000010) -> feeder_stereotomono16(0x10000010 -> 0x00000010) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr1]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr2]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr3]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr4]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr5]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr6]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr7]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr8]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr9]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr10]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr11]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr12]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr13]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr14]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr15]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr16]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr17]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr18]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr19]: spd 0, fmt 0x00000000/0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
        {hardware} -> feeder_root(0x00000000) -> {userland}

File Versions:
$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.44.2.1 2007/10/19 15:53:45 ariff Exp $
$FreeBSD: src/sys/dev/sound/isa/sndbuf_dma.c,v 1.3 2005/01/06 01:43:17 imp Exp $
$FreeBSD: src/sys/dev/sound/pcm/vchan.c,v 1.36 2007/06/16 03:37:28 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/sound.c,v 1.119 2007/06/17 19:02:05 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/sndstat.c,v 1.28 2007/06/16 03:37:28 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/mixer.c,v 1.61 2007/06/16 03:37:28 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/feeder_volume.c,v 1.6 2007/06/16 20:36:39 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/feeder_rate.c,v 1.23 2007/06/16 03:37:28 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/feeder_fmt.c,v 1.23 2007/06/02 13:07:44 joel Exp $
$FreeBSD: src/sys/dev/sound/pcm/feeder.c,v 1.44 2007/06/17 15:53:11 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/fake.c,v 1.18 2007/03/15 18:19:01 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/dsp.c,v 1.107 2007/07/04 12:33:11 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/channel.c,v 1.121 2007/06/16 03:37:28 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/buffer.c,v 1.37 2007/06/16 03:37:27 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/ac97_patch.c,v 1.10 2007/07/01 17:28:58 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/ac97.c,v 1.73 2007/06/17 06:10:43 ariff Exp $
gg# 

here is verbose dmesg i
only pcm part

nfslock: pseudo-device
null: <null device, zero device>
random: <entropy source, Software, Yarrow>
ichwd module loaded
io: <I/O>
kbd: new array size 4
kbd1 at kbdmux0
mem: <memory>
ath_hal: 0.9.20.3 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
acpi0: <ACRSYS ACRPRDCT> on motherboard
ioapic0: routing intpin 9 (ISA IRQ 9) to vector 48
acpi0: [MPSAFE]
acpi0: [ITHREAD]
acpi0: Power Button (fixed)
pci_open(1):	mode 1 addr port (0x0cf8) is 0x8000fa20
pci_open(1a):	mode1res=0x80000000 (0x80000000)
pci_cfgcheck:	device 0 [class=060000] [hdr=00] is there (id=27a08086)
AcpiOsDerivePciId: \\_SB_.PCI0.HBUS -> bus 0 dev 0 func 0
AcpiOsDerivePciId: \\_SB_.PCI0.RP01.PXS1.P1FG -> bus 2 dev 0 func 0
AcpiOsDerivePciId: \\_SB_.PCI0.RP02.PXS2.P2FG -> bus 3 dev 0 func 0
AcpiOsDerivePciId: \\_SB_.PCI0.USB7.HUB7.U7CS -> bus 0 dev 0 func 0
AcpiOsDerivePciId: \\_SB_.PCI0.LPCB.LPC0 -> bus 0 dev 31 func 0
acpi_hpet0: vend: 0x8086 rev: 0x1 num: 1 hz: 14318180 opts: leg_route count_size
Timecounter "HPET" frequency 14318180 Hz quality 900
ACPI timer: 0/3 1/2 1/2 1/2 1/2 1/1 1/1 1/2 1/1 1/2 -> 9
Timecounter "ACPI-safe" frequency 3579545 Hz quality 850
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0
acpi_ec0: <Embedded Controller: GPE 0x19> port 0x62,0x66 on acpi0
pci_link0:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0    6   N     0  1 5 6 10 12 14 15
  Validation          0    6   N     0  1 5 6 10 12 14 15
  After Disable       0  255   N     0  1 5 6 10 12 14 15
pci_link1:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  1 5 6 11 12 14 15
  Validation          0   11   N     0  1 5 6 11 12 14 15
  After Disable       0  255   N     0  1 5 6 11 12 14 15
pci_link2:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   11   N     0  1 5 6 10 12 14 15
  Validation          0  255   N     0  1 5 6 10 12 14 15
  After Disable       0  255   N     0  1 5 6 10 12 14 15
pci_link3:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   10   N     0  1 5 6 11 12 14 15
  Validation          0  255   N     0  1 5 6 11 12 14 15
  After Disable       0  255   N     0  1 5 6 11 12 14 15
pci_link4:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0  255   N     0  1 5 6 10 12 14 15
  Validation          0  255   N     0  1 5 6 10 12 14 15
  After Disable       0  255   N     0  1 5 6 10 12 14 15
pci_link5:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   10   N     0  1 5 6 11 12 14 15
  Validation          0  255   N     0  1 5 6 11 12 14 15
  After Disable       0  255   N     0  1 5 6 11 12 14 15
pci_link6:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0   10   N     0  1 5 6 10 12 14 15
  Validation          0   10   N     0  1 5 6 10 12 14 15
  After Disable       0  255   N     0  1 5 6 10 12 14 15
pci_link7:        Index  IRQ  Rtd  Ref  IRQs
  Initial Probe       0    5   N     0  1 5 6 11 12 14 15
  Validation          0    5   N     0  1 5 6 11 12 14 15
  After Disable       0  255   N     0  1 5 6 11 12 14 15
cpu0: <ACPI CPU> on acpi0
ACPI: SSDT @ 0x0x5f685f02/0x0238 (v  1  PmRef  Cpu0Ist 0x00003000 INTL 0x20050228)
ACPI: SSDT @ 0x0x5f6859bb/0x04C2 (v  1  PmRef  Cpu0Cst 0x00003001 INTL 0x20050228)
coretemp0: <CPU On-Die Thermal Sensors> on cpu0
est0: <Enhanced SpeedStep Frequency Control> on cpu0
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 6130c2506000613
device_attach: est0 attach returned 6
p4tcc0: <CPU Frequency Thermal Control> on cpu0
cpu1: <ACPI CPU> on acpi0
ACPI: SSDT @ 0x0x5f68613a/0x00C8 (v  1  PmRef  Cpu1Ist 0x00003000 INTL 0x20050228)
ACPI: SSDT @ 0x0x5f685e7d/0x0085 (v  1  PmRef  Cpu1Cst 0x00003000 INTL 0x20050228)
coretemp1: <CPU On-Die Thermal Sensors> on cpu1
est1: <Enhanced SpeedStep Frequency Control> on cpu1
est: CPU supports Enhanced Speedstep, but is not recognized.
est: cpu_vendor GenuineIntel, msr 6130c2506000613
device_attach: est1 attach returned 6
p4tcc1: <CPU Frequency Thermal Control> on cpu1
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_button0: <Sleep Button> on acpi0
acpi_button1: <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=0x27a0, revid=0x03
	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=0x27a2, revid=0x03
	domain=0, bus=0, slot=2, func=0
	class=03-00-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0007, statreg=0x0090, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=6
	powerspec 2  supports D0 D3  current D0
	MSI supports 1 message
	map[10]: type Memory, range 32, base 0xd0200000, size 19, enabled
	map[14]: type I/O Port, range 32, base 0x5088, size  3, enabled
	map[18]: type Prefetchable Memory, range 32, base 0xc0000000, size 28, enabled
	map[1c]: type Memory, range 32, base 0xd0300000, size 18, enabled
pcib0: matched entry for 0.2.INTA
pcib0: slot 2 INTA hardwired to IRQ 16
found->	vendor=0x8086, dev=0x27a6, revid=0x03
	domain=0, bus=0, slot=2, func=1
	class=03-80-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0007, statreg=0x0090, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	powerspec 2  supports D0 D3  current D0
	map[10]: type Memory, range 32, base 0xd0280000, size 19, enabled
found->	vendor=0x8086, dev=0x27d8, revid=0x02
	domain=0, bus=0, slot=27, func=0
	class=04-03-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0106, statreg=0x0010, cachelnsz=16 (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 0xd0340000, size 14, enabled
pcib0: matched entry for 0.27.INTA
pcib0: slot 27 INTA hardwired to IRQ 22
found->	vendor=0x8086, dev=0x27d0, revid=0x02
	domain=0, bus=0, slot=28, func=0
	class=06-04-00, hdrtype=0x01, mfdev=1
	cmdreg=0x0100, statreg=0x0010, cachelnsz=16 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x04 (1000 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=11
	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 17
found->	vendor=0x8086, dev=0x27d2, revid=0x02
	domain=0, bus=0, slot=28, func=1
	class=06-04-00, hdrtype=0x01, mfdev=1
	cmdreg=0x0107, statreg=0x0010, cachelnsz=16 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x04 (1000 ns), maxlat=0x00 (0 ns)
	intpin=b, irq=6
	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 16
found->	vendor=0x8086, dev=0x27d4, revid=0x02
	domain=0, bus=0, slot=28, func=2
	class=06-04-00, hdrtype=0x01, mfdev=1
	cmdreg=0x0107, statreg=0x0010, cachelnsz=16 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x04 (1000 ns), maxlat=0x00 (0 ns)
	intpin=c, irq=11
	powerspec 2  supports D0 D3  current D0
	MSI supports 1 message
pcib0: matched entry for 0.28.INTC
pcib0: slot 28 INTC hardwired to IRQ 18
found->	vendor=0x8086, dev=0x27d6, revid=0x02
	domain=0, bus=0, slot=28, func=3
	class=06-04-00, hdrtype=0x01, mfdev=1
	cmdreg=0x0107, statreg=0x0010, cachelnsz=16 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x04 (1000 ns), maxlat=0x00 (0 ns)
	intpin=d, irq=10
	powerspec 2  supports D0 D3  current D0
	MSI supports 1 message
pcib0: matched entry for 0.28.INTD
pcib0: slot 28 INTD hardwired to IRQ 19
found->	vendor=0x8086, dev=0x27c8, revid=0x02
	domain=0, bus=0, slot=29, func=0
	class=0c-03-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=5
	map[20]: type I/O Port, range 32, base 0x50a0, size  5, enabled
pcib0: matched entry for 0.29.INTA
pcib0: slot 29 INTA hardwired to IRQ 23
found->	vendor=0x8086, dev=0x27c9, revid=0x02
	domain=0, bus=0, slot=29, func=1
	class=0c-03-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=b, irq=10
	map[20]: type I/O Port, range 32, base 0x50c0, size  5, enabled
pcib0: matched entry for 0.29.INTB
pcib0: slot 29 INTB hardwired to IRQ 19
found->	vendor=0x8086, dev=0x27ca, revid=0x02
	domain=0, bus=0, slot=29, func=2
	class=0c-03-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0005, statreg=0x0280, 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 0x50e0, size  5, enabled
pcib0: matched entry for 0.29.INTC
pcib0: slot 29 INTC hardwired to IRQ 18
found->	vendor=0x8086, dev=0x27cb, revid=0x02
	domain=0, bus=0, slot=29, func=3
	class=0c-03-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=d, irq=6
	map[20]: type I/O Port, range 32, base 0x5400, size  5, enabled
pcib0: matched entry for 0.29.INTD
pcib0: slot 29 INTD hardwired to IRQ 16
found->	vendor=0x8086, dev=0x27cc, 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=5
	powerspec 2  supports D0 D3  current D0
	map[10]: type Memory, range 32, base 0xd0544000, size 10, enabled
pcib0: matched entry for 0.29.INTA
pcib0: slot 29 INTA hardwired to IRQ 23
found->	vendor=0x8086, dev=0x2448, revid=0xe2
	domain=0, bus=0, slot=30, func=0
	class=06-04-01, hdrtype=0x01, mfdev=0
	cmdreg=0x0004, statreg=0x0010, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x8086, dev=0x27b9, revid=0x02
	domain=0, bus=0, slot=31, func=0
	class=06-01-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0107, statreg=0x0210, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
found->	vendor=0x8086, dev=0x27c4, revid=0x02
	domain=0, bus=0, slot=31, func=2
	class=01-01-80, hdrtype=0x00, mfdev=0
	cmdreg=0x0005, statreg=0x02b8, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=b, irq=255
	powerspec 2  supports D0 D3  current D0
	map[20]: type I/O Port, range 32, base 0x5440, size  4, enabled
found->	vendor=0x8086, dev=0x27da, revid=0x02
	domain=0, bus=0, slot=31, func=3
	class=0c-05-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0101, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=b, irq=10
	map[20]: type I/O Port, range 32, base 0x5420, size  5, enabled
pcib0: matched entry for 0.31.INTB
pcib0: slot 31 INTB hardwired to IRQ 19
vgapci0: <VGA-compatible display> port 0x5088-0x508f mem 0xd0200000-0xd027ffff,0xc0000000-0xcfffffff,0xd0300000-0xd033ffff irq 16 at device 2.0 on pci0
agp0: <Intel 82945GM (945GM GMCH) SVGA controller> on vgapci0
vgapci0: Reserved 0x10000000 bytes for rid 0x18 type 3 at 0xc0000000
vgapci0: Reserved 0x80000 bytes for rid 0x10 type 3 at 0xd0200000
vgapci0: Reserved 0x40000 bytes for rid 0x1c type 3 at 0xd0300000
agp0: detected 7932k stolen memory
agp0: aperture size is 256M
drm0: <Intel i945GM> on vgapci0
info: [drm] AGP at 0xc0000000 256MB
info: [drm] Initialized i915 1.5.0 20060119
vgapci1: <VGA-compatible display> mem 0xd0280000-0xd02fffff at device 2.1 on pci0
pcm0: <Intel 82801G High Definition Audio Controller> mem 0xd0340000-0xd0343fff irq 22 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 0xd0340000
ioapic0: routing intpin 22 (PCI IRQ 22) to vector 49
pcm0: [MPSAFE]
pcm0: [ITHREAD]
pcm0: hdac_dma_alloc: size=1024 -> roundsz=1024
pcm0: hdac_dma_alloc: size=2048 -> roundsz=2048
pcib1: <ACPI PCI-PCI bridge> irq 17 at device 28.0 on pci0
pcib1:   domain            0
pcib1:   secondary bus     2
pcib1:   subordinate bus   2
pcib1:   I/O decode        0x0-0x0
pcib1:   no prefetched decode
pci2: <ACPI PCI bus> on pcib1
pci2: domain=0, physical bus=2
pcib2: <ACPI PCI-PCI bridge> irq 16 at device 28.1 on pci0
pcib2:   domain            0
pcib2:   secondary bus     3
pcib2:   subordinate bus   3
pcib2:   I/O decode        0xf000-0xfff
pcib2:   no prefetched decode
pci3: <ACPI PCI bus> on pcib2
pci3: domain=0, physical bus=3
pcib3: <ACPI PCI-PCI bridge> irq 18 at device 28.2 on pci0
pcib3:   domain            0
pcib3:   secondary bus     4
pcib3:   subordinate bus   4
pcib3:   I/O decode        0xf000-0xfff
pcib3:   no prefetched decode
pci4: <ACPI PCI bus> on pcib3
pci4: domain=0, physical bus=4
pcib4: <ACPI PCI-PCI bridge> irq 19 at device 28.3 on pci0
pcib4:   domain            0
pcib4:   secondary bus     5
pcib4:   subordinate bus   5
pcib4:   I/O decode        0xf000-0xfff
pcib4:   memory decode     0xd0100000-0xd01fffff
pcib4:   no prefetched decode
pci5: <ACPI PCI bus> on pcib4
pci5: domain=0, physical bus=5
found->	vendor=0x8086, dev=0x4222, revid=0x02
	domain=0, bus=5, slot=0, func=0
	class=02-80-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0106, statreg=0x0010, cachelnsz=16 (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 32, base 0xd0100000, size 12, enabled
pcib4: requested memory range 0xd0100000-0xd0100fff: good
pcib4: matched entry for 5.0.INTA
pcib4: slot 0 INTA hardwired to IRQ 19
pci5: <network> at device 0.0 (no driver attached)
uhci0: <UHCI (generic) USB controller> port 0x50a0-0x50bf irq 23 at device 29.0 on pci0
uhci0: Reserved 0x20 bytes for rid 0x20 type 4 at 0x50a0
ioapic0: routing intpin 23 (PCI IRQ 23) 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 0x50c0-0x50df irq 19 at device 29.1 on pci0
uhci1: Reserved 0x20 bytes for rid 0x20 type 4 at 0x50c0
ioapic0: routing intpin 19 (PCI IRQ 19) 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 0x50e0-0x50ff irq 18 at device 29.2 on pci0
uhci2: Reserved 0x20 bytes for rid 0x20 type 4 at 0x50e0
ioapic0: routing intpin 18 (PCI IRQ 18) 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
uhci3: <UHCI (generic) USB controller> port 0x5400-0x541f irq 16 at device 29.3 on pci0
uhci3: Reserved 0x20 bytes for rid 0x20 type 4 at 0x5400
ioapic0: routing intpin 16 (PCI IRQ 16) to vector 53
uhci3: [GIANT-LOCKED]
uhci3: [ITHREAD]
usb3: <UHCI (generic) USB controller> on uhci3
usb3: USB revision 1.0
uhub3: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb3
uhub3: 2 ports with 2 removable, self powered
ehci0: <Intel 82801GB/R (ICH7) USB 2.0 controller> mem 0xd0544000-0xd05443ff irq 23 at device 29.7 on pci0
ehci0: Reserved 0x400 bytes for rid 0x10 type 3 at 0xd0544000
ehci0: [GIANT-LOCKED]
ehci0: [ITHREAD]
usb4: EHCI version 1.0
usb4: companion controllers, 2 ports each: usb0 usb1 usb2 usb3
usb4: <Intel 82801GB/R (ICH7) USB 2.0 controller> on ehci0
usb4: USB revision 2.0
uhub4: <Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1> on usb4
uhub4: 8 ports with 8 removable, self powered
pcib5: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pcib5:   domain            0
pcib5:   secondary bus     6
pcib5:   subordinate bus   7
pcib5:   I/O decode        0x0-0x0
pcib5:   no prefetched decode
pcib5:   Subtractively decoded bridge.
pci6: <ACPI PCI bus> on pcib5
pci6: domain=0, physical bus=6
found->	vendor=0x14e4, dev=0x170c, revid=0x02
	domain=0, bus=6, slot=1, func=0
	class=02-00-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=10
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type Memory, range 32, base 0xd0000000, size 13, enabled
pcib5: requested memory range 0xd0000000-0xd0001fff: good
pcib5: matched entry for 6.1.INTA
pcib5: slot 1 INTA hardwired to IRQ 21
found->	vendor=0x1524, dev=0x1412, revid=0x10
	domain=0, bus=6, slot=4, func=0
	class=06-07-00, hdrtype=0x02, mfdev=1
	cmdreg=0x0007, statreg=0x0210, cachelnsz=8 (dwords)
	lattimer=0x40 (1920 ns), mingnt=0x40 (16000 ns), maxlat=0x07 (1750 ns)
	intpin=a, irq=6
	powerspec 1  supports D0 D1 D2 D3  current D0
	map[10]: type Memory, range 32, base 0, size 12, enabled
pcib5: matched entry for 6.4.INTA
pcib5: slot 4 INTA hardwired to IRQ 16
found->	vendor=0x1524, dev=0x0530, revid=0x01
	domain=0, bus=6, slot=4, func=1
	class=05-01-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0000, statreg=0x0210, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x01 (250 ns), maxlat=0x04 (1000 ns)
	intpin=b, irq=11
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type Memory, range 32, base 0xd0003000, size  7, memory disabled
pcib5: requested memory range 0xd0003000-0xd000307f: good
pcib5: matched entry for 6.4.INTB
pcib5: slot 4 INTB hardwired to IRQ 17
found->	vendor=0x1524, dev=0x0550, revid=0x01
	domain=0, bus=6, slot=4, func=2
	class=08-05-01, hdrtype=0x00, mfdev=1
	cmdreg=0x0000, statreg=0x0210, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x20 (8000 ns), maxlat=0x48 (18000 ns)
	intpin=b, irq=11
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type Memory, range 32, base 0xd0003400, size  8, memory disabled
pcib5: requested memory range 0xd0003400-0xd00034ff: good
pcib5: matched entry for 6.4.INTB
pcib5: slot 4 INTB hardwired to IRQ 17
found->	vendor=0x1524, dev=0x0520, revid=0x01
	domain=0, bus=6, slot=4, func=3
	class=05-01-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0000, statreg=0x0210, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x01 (250 ns), maxlat=0x04 (1000 ns)
	intpin=b, irq=11
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type Memory, range 32, base 0xd0003800, size  7, memory disabled
pcib5: requested memory range 0xd0003800-0xd000387f: good
pcib5: matched entry for 6.4.INTB
pcib5: slot 4 INTB hardwired to IRQ 17
found->	vendor=0x1524, dev=0x0551, revid=0x01
	domain=0, bus=6, slot=4, func=4
	class=05-01-00, hdrtype=0x00, mfdev=1
	cmdreg=0x0000, statreg=0x0210, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x20 (8000 ns), maxlat=0x48 (18000 ns)
	intpin=b, irq=255
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type Memory, range 32, base 0, size  8, memory disabled
bfe0: <Broadcom BCM4401-B0 Fast Ethernet> mem 0xd0000000-0xd0001fff irq 21 at device 1.0 on pci6
bfe0: Reserved 0x2000 bytes for rid 0x10 type 3 at 0xd0000000
miibus0: <MII bus> on bfe0
bmtphy0: <BCM4401 10/100baseTX PHY> PHY 1 on miibus0
bmtphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
bfe0: using obsoleted if_watchdog interface
bfe0: bpf attached
bfe0: Ethernet address: 00:16:d4:af:55:a5
ioapic0: routing intpin 21 (PCI IRQ 21) to vector 54
bfe0: [MPSAFE]
bfe0: [ITHREAD]
cbb0: <PCI-CardBus Bridge> irq 16 at device 4.0 on pci6
pcib5: cbb0 requested memory range 0x0-0xffffffffffffffff: good
cbb0: Lazy allocation of 0x1000 bytes rid 0x10 type 3 at 0x80000000
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
cbb0: [MPSAFE]
cbb0: [ITHREAD]
cbb0: PCI Configuration space:
  0x00: 0x14121524 0x02100007 0x06070010 0x00824008 
  0x10: 0x80000000 0x020000a0 0x20070706 0xfffff000 
  0x20: 0x00000000 0xfffff000 0x00000000 0xfffffffc 
  0x30: 0x00000000 0xfffffffc 0x00000000 0x07400110 
  0x40: 0x00901025 0x00000001 0x00000000 0x00000000 
  0x50: 0x00000000 0x00000000 0x00000000 0x00000000 
  0x60: 0x00000000 0x00000000 0x00000000 0x00000000 
  0x70: 0x00000000 0x00000000 0x00000000 0x00000000 
  0x80: 0x4060d021 0x00000000 0x00000000 0x90501212 
  0x90: 0x604400c0 0x00000000 0x00000000 0x00000000 
  0xa0: 0xfe010001 0x00c00000 0x00000000 0x0000001d 
  0xb0: 0x00000000 0x00000000 0x00000000 0x00000000 
  0xc0: 0x00001003 0x00800080 0x10080400 0x000007fe 
  0xd0: 0x00c00000 0x00000000 0x00000000 0x00000000 
  0xe0: 0x00000000 0x00000000 0x00000000 0x00000000 
  0xf0: 0x00000000 0x00000000 0x00000000 0x00000000 
pci6: <memory, flash> at device 4.1 (no driver attached)
pci6: <base peripheral> at device 4.2 (no driver attached)
pci6: <memory, flash> at device 4.3 (no driver attached)
pci6: <memory, flash> at device 4.4 (no driver attached)
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH7M SATA300 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x5440-0x544f at device 31.2 on pci0
atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0x5440
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=0x00 msb=0x00
ata0: reset tp2 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
ioapic0: routing intpin 14 (ISA IRQ 14) to vector 55
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=0x00 err=0x01 lsb=0x14 msb=0xeb
ata1: stat1=0x00 err=0x00 lsb=0x00 msb=0x00
ata1: reset tp2 stat0=00 stat1=00 devices=0x4<ATAPI_MASTER>
ioapic0: routing intpin 15 (ISA IRQ 15) to vector 56
ata1: [MPSAFE]
ata1: [ITHREAD]
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
acpi_tz0: <Thermal Zone> on acpi0
acpi_tz1: <Thermal Zone> on acpi0
battery0: <ACPI Control Method Battery> on acpi0
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 at atkbd0
kbd0: atkbd0, AT 101/102 (2), config:0x0, flags:0x3d0000
ioapic0: routing intpin 1 (ISA IRQ 1) to vector 57
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
psm0: unable to allocate IRQ
psmcpnp0: <PS/2 mouse port> irq 12 on acpi0
psm0: current command byte:0047
psm0: <PS/2 Mouse> irq 12 on atkbdc0
ioapic0: routing intpin 12 (ISA IRQ 12) to vector 58
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0-00, 2 buttons
psm0: config:00000000, flags:00000008, packet size:3
psm0: syncmask:c0, syncbits:00
acpi_acad0: <AC Adapter> on acpi0
isab0: found ICH7 or equivalent chipset: Intel ICH7M watchdog timer
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
ichwd0: <Intel ICH7M watchdog timer> on isa0
isab0: found ICH7 or equivalent chipset: Intel ICH7M watchdog timer
ichwd0: Intel ICH7M watchdog timer (ICH7 or equivalent)
ichwd0: timer disabled
orm0: <ISA Option ROMs> at iomem 0xcf000-0xd07ff,0xe0000-0xe17ff,0xe3800-0xe3fff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sc0: fb0, kbd1, terminal emulator: sc (syscons terminal)
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
fdc0 failed to probe at port 0x3f0 irq 6 drq 2 on isa0
ppc0 failed to probe at irq 7 on isa0
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)
isa_probe_children: probing PnP devices
ums0: <Microsoft Basic Optical Mouse, class 0/0, rev 1.10/0.00, addr 2> on uhub3
ums0: 3 buttons and Z dir.
Device configuration finished.
Reducing kern.maxvnodes 100380 -> 100000
procfs registered
lapic: Divisor 2, Frequency 66500789 hz
Timecounter "TSC" frequency 1596018804 Hz quality -100
Timecounters tick every 1.000 msec
lo0: bpf attached
battery0: battery initialization start
acpi_acad0: acline initialization start
ata0-master: pio=PIO4 wdma=WDMA2 udma=UDMA133 cable=40 wire
atapicam: atapicam0 already exists; skipping it
ad0: 76319MB <WDC WD800BEVS-22RST0 04.01G04> at ata0-master SATA150
ad0: 156301488 sectors [155061C/16H/63S] 16 sectors/interrupt 1 depth queue
GEOM: new disk ad0
acpi_acad0: On Line
acpi_acad0: acline initialization done, tried 1 times
battery0: battery initialization done, tried 1 times
ad0: Intel check1 failed
ad0: Adaptec check1 failed
ad0: LSI (v3) check1 failed
ad0: LSI (v2) check1 failed
ad0: FreeBSD check1 failed
ata1-master: pio=PIO4 wdma=WDMA2 udma=UDMA33 cable=40 wire
acd0: <HL-DT-ST DVDRAM GSA-T10N/PP02> DVDR drive at ata1 as master
acd0: read 4134KB/s (4134KB/s) write 4134KB/s (4134KB/s), 2048KB buffer, UDMA33
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
pcm0: HDA_DEBUG: HDA Config: on=0x00000000 off=0x00000000
pcm0: HDA_DEBUG: Starting CORB Engine...
pcm0: HDA_DEBUG: Starting RIRB Engine...
pcm0: HDA_DEBUG: Enabling controller interrupt...
pcm0: HDA_DEBUG: Scanning HDA codecs [start index=0] ...
pcm0: HDA_DEBUG: Probing codec: 0
pcm0: HDA_DEBUG: 	startnode=1 endnode=2
pcm0: HDA_DEBUG: 	Found AFG nid=1 [startnode=1 endnode=2]
pcm0: HDA_DEBUG: Parsing AFG nid=1 cad=0
pcm0:        Vendor: 0x000010ec
pcm0:        Device: 0x00000883
pcm0:      Revision: 0x00000000
pcm0:      Stepping: 0x00000002
pcm0: PCI Subvendor: 0x00901025
pcm0:         Nodes: start=2 endnode=39 total=37
pcm0:     CORB size: 256
pcm0:     RIRB size: 256
pcm0:       Streams: ISS=4 OSS=4 BSS=0
pcm0:          GPIO: 0x40000002
pcm0:                NumGPIO=2 NumGPO=0 NumGPI=0 GPIWake=0 GPIUnsol=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=10 found=10
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=15 entries=2 found=2
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=20 entries=5 found=5
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=21 entries=5 found=5
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=22 entries=5 found=5
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=23 entries=5 found=5
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=24 entries=5 found=5
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=25 entries=5 found=5
pcm0: HDA_DEBUG: Pin config nid=25 0x411111f0 -> 0x81a111f0
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=26 entries=5 found=5
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=27 entries=5 found=5
pcm0: HDA_DEBUG: Pin config nid=28 0x411111f0 -> 0x813111f0
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=30 entries=1 found=1
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=34 entries=11 found=11
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=35 entries=11 found=11
pcm0: HDA_DEBUG: hdac_widget_connection_parse: nid=38 entries=2 found=2
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: GPIO init: data=0x00000000 mask=0x00000000 dir=0x00000000
pcm0: GPIO commit: data=0x00000001 mask=0x00000001 dir=0x00000001
pcm0: HDA_DEBUG: Ctls commit...
pcm0: [ 6] Ctl nid=11 childnid=27 DISABLED
pcm0: [ 8] Ctl nid=11 childnid=29 DISABLED
pcm0: [ 9] Ctl nid=11 childnid=20 Bind to NONE
pcm0: [10] Ctl nid=11 childnid=21 DISABLED
pcm0: [11] Ctl nid=11 childnid=22 DISABLED
pcm0: [12] Ctl nid=11 childnid=23 DISABLED
pcm0: [13] Ctl nid=12 Bind to NONE
pcm0: [15] Ctl nid=12 childnid=11 Bind to NONE
pcm0: [16] Ctl nid=13 Bind to NONE
pcm0: [18] Ctl nid=13 childnid=11 Bind to NONE
pcm0: [19] Ctl nid=14 Bind to NONE
pcm0: [21] Ctl nid=14 childnid=11 Bind to NONE
pcm0: [22] Ctl nid=15 Bind to NONE
pcm0: [24] Ctl nid=15 childnid=11 Bind to NONE
pcm0: [25] Ctl nid=20 Bind to NONE
pcm0: [26] Ctl nid=20 Bind to NONE
pcm0: [27] Ctl nid=21 DISABLED
pcm0: [28] Ctl nid=21 DISABLED
pcm0: [29] Ctl nid=22 DISABLED
pcm0: [30] Ctl nid=22 DISABLED
pcm0: [31] Ctl nid=23 DISABLED
pcm0: [32] Ctl nid=23 DISABLED
pcm0: [33] Ctl nid=24 Bind to NONE
pcm0: [34] Ctl nid=24 Bind to NONE
pcm0: [35] Ctl nid=25 Bind to NONE
pcm0: [36] Ctl nid=25 Bind to NONE
pcm0: [37] Ctl nid=26 Bind to NONE
pcm0: [38] Ctl nid=26 Bind to NONE
pcm0: [39] Ctl nid=27 DISABLED
pcm0: [40] Ctl nid=27 DISABLED
pcm0: [41] Ctl nid=34 childnid=24 Bind to NONE
pcm0: [42] Ctl nid=34 childnid=25 Bind to NONE
pcm0: [43] Ctl nid=34 childnid=26 Bind to NONE
pcm0: [44] Ctl nid=34 childnid=27 DISABLED
pcm0: [45] Ctl nid=34 childnid=28 Bind to NONE
pcm0: [46] Ctl nid=34 childnid=29 DISABLED
pcm0: [47] Ctl nid=34 childnid=20 Bind to NONE
pcm0: [48] Ctl nid=34 childnid=21 DISABLED
pcm0: [49] Ctl nid=34 childnid=22 DISABLED
pcm0: [50] Ctl nid=34 childnid=23 DISABLED
pcm0: [51] Ctl nid=34 childnid=11 Bind to NONE
pcm0: [52] Ctl nid=35 childnid=24 Bind to NONE
pcm0: [53] Ctl nid=35 childnid=25 Bind to NONE
pcm0: [54] Ctl nid=35 childnid=26 Bind to NONE
pcm0: [55] Ctl nid=35 childnid=27 DISABLED
pcm0: [56] Ctl nid=35 childnid=28 Bind to NONE
pcm0: [57] Ctl nid=35 childnid=29 DISABLED
pcm0: [58] Ctl nid=35 childnid=20 Bind to NONE
pcm0: [59] Ctl nid=35 childnid=21 DISABLED
pcm0: [60] Ctl nid=35 childnid=22 DISABLED
pcm0: [61] Ctl nid=35 childnid=23 DISABLED
pcm0: [62] Ctl nid=35 childnid=11 Bind to NONE
pcm0: [63] Ctl nid=38 Bind to NONE
pcm0: [65] Ctl nid=38 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 "cd":
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 2238000, 4000; 0xffffffffa882b000 -> 2238000
pcm0: hdac_dma_alloc: size=4096 -> roundsz=4096
pcm0: sndbuf_setmap 2240000, 4000; 0xffffffffa882f000 -> 2240000
pcm0: <HDA Codec: Realtek ALC883>
pcm0: <HDA Codec ID: 0x10ec0883>
pcm0: <HDA Driver Revision: 20071020_0048>
pcm0: 
pcm0: HDA config/quirks: gpio0 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: 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: 5 [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: 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: vendor widget
pcm0:      widget_cap: 0x00f00000
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:     connections: 0
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 mixer]
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: 0x000001c1
pcm0:       Input amp: 0x80051f17
pcm0:                  mute=1 step=31 size=5 offset=23
pcm0:     connections: 10
pcm0:           |
pcm0:           + <- nid=24 [pin: Mic in (jack)]
pcm0:           |
pcm0:           + <- nid=25 [pin: Mic in (fixed)]
pcm0:           |
pcm0:           + <- nid=26 [pin: line in (jack)]
pcm0:           |
pcm0:           + <- nid=27 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=28 [pin: CD (fixed)]
pcm0:           |
pcm0:           + <- nid=29 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=20 [pin: headphones out (jack / fix]
pcm0:           |
pcm0:           + <- nid=21 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=22 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=23 [pin: speaker (none)] [DISABLED]
pcm0: 
pcm0:             nid: 12 [ANALOG]
pcm0:            name: audio mixer
pcm0:      widget_cap: 0x0020010f
pcm0:     Parse flags: 0x00000001
pcm0:       Ctl flags: 0x000001d1
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: 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=4 [audio output]
pcm0:           |
pcm0:           + <- nid=11 [audio mixer]
pcm0: 
pcm0:             nid: 15 [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=5 [audio output]
pcm0:           |
pcm0:           + <- nid=11 [audio mixer]
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]
pcm0:            name: vendor widget
pcm0:      widget_cap: 0x00f00000
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
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: headphones out (jack / fix
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: 0xc2211110
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: 5
pcm0:           |
pcm0:           + <- nid=12 [audio mixer] (selected)
pcm0:           |
pcm0:           + <- nid=13 [audio mixer]
pcm0:           |
pcm0:           + <- nid=14 [audio mixer]
pcm0:           |
pcm0:           + <- nid=15 [audio mixer]
pcm0:           |
pcm0:           + <- nid=38 [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: 5
pcm0:           |
pcm0:           + <- nid=12 [audio mixer]
pcm0:           |
pcm0:           + <- nid=13 [audio mixer]
pcm0:           |
pcm0:           + <- nid=14 [audio mixer]
pcm0:           |
pcm0:           + <- nid=15 [audio mixer]
pcm0:           |
pcm0:           + <- nid=38 [audio mixer]
pcm0: 
pcm0:             nid: 22 [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: 5
pcm0:           |
pcm0:           + <- nid=12 [audio mixer]
pcm0:           |
pcm0:           + <- nid=13 [audio mixer]
pcm0:           |
pcm0:           + <- nid=14 [audio mixer]
pcm0:           |
pcm0:           + <- nid=15 [audio mixer]
pcm0:           |
pcm0:           + <- nid=38 [audio mixer]
pcm0: 
pcm0:             nid: 23 [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: 5
pcm0:           |
pcm0:           + <- nid=12 [audio mixer]
pcm0:           |
pcm0:           + <- nid=13 [audio mixer]
pcm0:           |
pcm0:           + <- nid=14 [audio mixer]
pcm0:           |
pcm0:           + <- nid=15 [audio mixer]
pcm0:           |
pcm0:           + <- nid=38 [audio mixer]
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: 0x0000053e
pcm0:                  TRQD HP OUT IN VREF[ GROUND HIZ ] : UNSOL
pcm0:      Pin config: 0x02a19930
pcm0:     Pin control: 0x00000020 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: 5
pcm0:           |
pcm0:           + <- nid=12 [audio mixer] (selected)
pcm0:           |
pcm0:           + <- nid=13 [audio mixer]
pcm0:           |
pcm0:           + <- nid=14 [audio mixer]
pcm0:           |
pcm0:           + <- nid=15 [audio mixer]
pcm0:           |
pcm0:           + <- nid=38 [audio mixer]
pcm0: 
pcm0:             nid: 25 [ANALOG]
pcm0:            name: pin: Mic in (fixed)
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: 0x81a111f0
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: 5
pcm0:           |
pcm0:           + <- nid=12 [audio mixer] (selected)
pcm0:           |
pcm0:           + <- nid=13 [audio mixer]
pcm0:           |
pcm0:           + <- nid=14 [audio mixer]
pcm0:           |
pcm0:           + <- nid=15 [audio mixer]
pcm0:           |
pcm0:           + <- nid=38 [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: 0x0281313f
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: 5
pcm0:           |
pcm0:           + <- nid=12 [audio mixer] (selected)
pcm0:           |
pcm0:           + <- nid=13 [audio mixer]
pcm0:           |
pcm0:           + <- nid=14 [audio mixer]
pcm0:           |
pcm0:           + <- nid=15 [audio mixer]
pcm0:           |
pcm0:           + <- nid=38 [audio mixer]
pcm0: 
pcm0:             nid: 27 [ANALOG] [DISABLED]
pcm0:            name: pin: speaker (none)
pcm0:      widget_cap: 0x0040018f
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x0000173e
pcm0:                  TRQD HP OUT IN VREF[ 50 80 GROUND HIZ ] : 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: 5
pcm0:           |
pcm0:           + <- nid=12 [audio mixer]
pcm0:           |
pcm0:           + <- nid=13 [audio mixer]
pcm0:           |
pcm0:           + <- nid=14 [audio mixer]
pcm0:           |
pcm0:           + <- nid=15 [audio mixer]
pcm0:           |
pcm0:           + <- nid=38 [audio mixer]
pcm0: 
pcm0:             nid: 28 [ANALOG]
pcm0:            name: pin: CD (fixed)
pcm0:      widget_cap: 0x00400001
pcm0:     Parse flags: 0x00000002
pcm0:       Ctl flags: 0x00000101
pcm0:         Pin cap: 0x00000020
pcm0:                  IN
pcm0:      Pin config: 0x813111f0
pcm0:     Pin control: 0x00000020 IN
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 29 [ANALOG] [DISABLED]
pcm0:            name: pin: speaker (none)
pcm0:      widget_cap: 0x00400000
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x00000020
pcm0:                  IN
pcm0:      Pin config: 0x4015130d
pcm0:     Pin control: 0x00000020 IN
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 30 [DIGITAL] [DISABLED]
pcm0:            name: pin: speaker (none)
pcm0:      widget_cap: 0x00400300
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:         Pin cap: 0x00000010
pcm0:                  OUT
pcm0:      Pin config: 0x411111f0
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: 0x00400200
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: 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: vendor widget
pcm0:      widget_cap: 0x00f00000
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 34 [ANALOG]
pcm0:            name: audio mixer
pcm0:      widget_cap: 0x0020010f
pcm0:     Parse flags: 0x00000006
pcm0:       Ctl flags: 0x00000000
pcm0:       Input amp: 0x80000000
pcm0:                  mute=1 step=0 size=0 offset=0
pcm0:     connections: 11
pcm0:           |
pcm0:           + <- nid=24 [pin: Mic in (jack)]
pcm0:           |
pcm0:           + <- nid=25 [pin: Mic in (fixed)]
pcm0:           |
pcm0:           + <- nid=26 [pin: line in (jack)]
pcm0:           |
pcm0:           + <- nid=27 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=28 [pin: CD (fixed)]
pcm0:           |
pcm0:           + <- nid=29 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=20 [pin: headphones out (jack / fix]
pcm0:           |
pcm0:           + <- nid=21 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=22 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=23 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=11 [audio mixer]
pcm0: 
pcm0:             nid: 35 [ANALOG]
pcm0:            name: audio mixer
pcm0:      widget_cap: 0x0020010f
pcm0:     Parse flags: 0x00000006
pcm0:       Ctl flags: 0x00000000
pcm0:       Input amp: 0x80000000
pcm0:                  mute=1 step=0 size=0 offset=0
pcm0:     connections: 11
pcm0:           |
pcm0:           + <- nid=24 [pin: Mic in (jack)]
pcm0:           |
pcm0:           + <- nid=25 [pin: Mic in (fixed)]
pcm0:           |
pcm0:           + <- nid=26 [pin: line in (jack)]
pcm0:           |
pcm0:           + <- nid=27 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=28 [pin: CD (fixed)]
pcm0:           |
pcm0:           + <- nid=29 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=20 [pin: headphones out (jack / fix]
pcm0:           |
pcm0:           + <- nid=21 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=22 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=23 [pin: speaker (none)] [DISABLED]
pcm0:           |
pcm0:           + <- nid=11 [audio mixer]
pcm0: 
pcm0:             nid: 36 [ANALOG]
pcm0:            name: vendor widget
pcm0:      widget_cap: 0x00f00000
pcm0:     Parse flags: 0x00000000
pcm0:       Ctl flags: 0x00000000
pcm0:     connections: 0
pcm0: 
pcm0:             nid: 37 [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: 38 [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=37 [audio output]
pcm0:           |
pcm0:           + <- nid=11 [audio mixer]
pcm0: 
pcm0: +------------------------+
pcm0: | DUMPING HDA AMPLIFIERS |
pcm0: +------------------------+
pcm0: 
pcm0:   1: nid=8 dir=0x2 index=0 ossmask=0x00000800 ossdev=0
pcm0:   2: nid=9 dir=0x2 index=0 ossmask=0x00000800 ossdev=0
pcm0:   3: nid=11 cnid=24 dir=0x2 index=0 ossmask=0x00000081 ossdev=7
pcm0:   4: nid=11 cnid=25 dir=0x2 index=1 ossmask=0x00000081 ossdev=7
pcm0:   5: nid=11 cnid=26 dir=0x2 index=2 ossmask=0x00000041 ossdev=6
pcm0:   6: nid=11 cnid=27 dir=0x2 index=3 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:   7: nid=11 cnid=28 dir=0x2 index=4 ossmask=0x00000101 ossdev=8
pcm0:   8: nid=11 cnid=29 dir=0x2 index=5 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:   9: nid=11 cnid=20 dir=0x2 index=6 ossmask=0x00000000 ossdev=0
pcm0:  10: nid=11 cnid=21 dir=0x2 index=7 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  11: nid=11 cnid=22 dir=0x2 index=8 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  12: nid=11 cnid=23 dir=0x2 index=9 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  13: nid=12 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  14: nid=12 cnid=2 dir=0x2 index=0 ossmask=0x00000011 ossdev=4
pcm0:  15: nid=12 cnid=11 dir=0x2 index=1 ossmask=0x00000000 ossdev=0
pcm0:  16: nid=13 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  17: nid=13 cnid=3 dir=0x2 index=0 ossmask=0x00000011 ossdev=4
pcm0:  18: nid=13 cnid=11 dir=0x2 index=1 ossmask=0x00000000 ossdev=0
pcm0:  19: nid=14 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  20: nid=14 cnid=4 dir=0x2 index=0 ossmask=0x00000011 ossdev=4
pcm0:  21: nid=14 cnid=11 dir=0x2 index=1 ossmask=0x00000000 ossdev=0
pcm0:  22: nid=15 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  23: nid=15 cnid=5 dir=0x2 index=0 ossmask=0x00000011 ossdev=4
pcm0:  24: nid=15 cnid=11 dir=0x2 index=1 ossmask=0x00000000 ossdev=0
pcm0:  25: nid=20 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  26: nid=20 dir=0x2 index=0 ossmask=0x00000000 ossdev=0
pcm0:  27: nid=21 dir=0x1 index=0 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  28: nid=21 dir=0x2 index=0 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  29: nid=22 dir=0x1 index=0 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  30: nid=22 dir=0x2 index=0 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  31: nid=23 dir=0x1 index=0 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  32: nid=23 dir=0x2 index=0 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  33: nid=24 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  34: nid=24 dir=0x2 index=0 ossmask=0x00000000 ossdev=0
pcm0:  35: nid=25 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  36: nid=25 dir=0x2 index=0 ossmask=0x00000000 ossdev=0
pcm0:  37: nid=26 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  38: nid=26 dir=0x2 index=0 ossmask=0x00000000 ossdev=0
pcm0:  39: nid=27 dir=0x1 index=0 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  40: nid=27 dir=0x2 index=0 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  41: nid=34 cnid=24 dir=0x2 index=0 ossmask=0x00000000 ossdev=0
pcm0:  42: nid=34 cnid=25 dir=0x2 index=1 ossmask=0x00000000 ossdev=0
pcm0:  43: nid=34 cnid=26 dir=0x2 index=2 ossmask=0x00000000 ossdev=0
pcm0:  44: nid=34 cnid=27 dir=0x2 index=3 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  45: nid=34 cnid=28 dir=0x2 index=4 ossmask=0x00000000 ossdev=0
pcm0:  46: nid=34 cnid=29 dir=0x2 index=5 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  47: nid=34 cnid=20 dir=0x2 index=6 ossmask=0x00000000 ossdev=0
pcm0:  48: nid=34 cnid=21 dir=0x2 index=7 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  49: nid=34 cnid=22 dir=0x2 index=8 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  50: nid=34 cnid=23 dir=0x2 index=9 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  51: nid=34 cnid=11 dir=0x2 index=10 ossmask=0x00000000 ossdev=0
pcm0:  52: nid=35 cnid=24 dir=0x2 index=0 ossmask=0x00000000 ossdev=0
pcm0:  53: nid=35 cnid=25 dir=0x2 index=1 ossmask=0x00000000 ossdev=0
pcm0:  54: nid=35 cnid=26 dir=0x2 index=2 ossmask=0x00000000 ossdev=0
pcm0:  55: nid=35 cnid=27 dir=0x2 index=3 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  56: nid=35 cnid=28 dir=0x2 index=4 ossmask=0x00000000 ossdev=0
pcm0:  57: nid=35 cnid=29 dir=0x2 index=5 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  58: nid=35 cnid=20 dir=0x2 index=6 ossmask=0x00000000 ossdev=0
pcm0:  59: nid=35 cnid=21 dir=0x2 index=7 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  60: nid=35 cnid=22 dir=0x2 index=8 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  61: nid=35 cnid=23 dir=0x2 index=9 ossmask=0x00000000 ossdev=0 [DISABLED]
pcm0:  62: nid=35 cnid=11 dir=0x2 index=10 ossmask=0x00000000 ossdev=0
pcm0:  63: nid=38 dir=0x1 index=0 ossmask=0x00000000 ossdev=0
pcm0:  64: nid=38 cnid=37 dir=0x2 index=0 ossmask=0x00000011 ossdev=4
pcm0:  65: nid=38 cnid=11 dir=0x2 index=1 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: 11 index:  4 (nid: 28) mute: 1 step:  31 size:   5 off:  23 dir=0x2 ossmask=0x00000101
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:  4) mute: 1 step:   0 size:   0 off:   0 dir=0x2 ossmask=0x00000011
pcm0:    |
pcm0:    +-  nid: 15 index:  0 (nid:  5) mute: 1 step:   0 size:   0 off:   0 dir=0x2 ossmask=0x00000011
pcm0:    |
pcm0:    +-  nid: 38 index:  0 (nid: 37) 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:  4) mute: 1 step:   0 size:   0 off:   0 dir=0x2 ossmask=0x00000011
pcm0:    |
pcm0:    +-  nid: 15 index:  0 (nid:  5) mute: 1 step:   0 size:   0 off:   0 dir=0x2 ossmask=0x00000011
pcm0:    |
pcm0:    +-  nid: 38 index:  0 (nid: 37) mute: 1 step:   0 size:   0 off:   0 dir=0x2 ossmask=0x00000011
pcm0: 
pcm0: CD Volume (OSS: cd)
pcm0:    |
pcm0:    +-  nid: 11 index:  4 (nid: 28) mute: 1 step:  31 size:   5 off:  23 dir=0x2 ossmask=0x00000101
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:  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: headphones out (jack / fix]
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 mixer]
pcm0:       |
pcm0:       + <- nid=24 [pin: Mic in (jack)] [recsrc: vol, mic]
pcm0:       |
pcm0:       + <- nid=25 [pin: Mic in (fixed)] [recsrc: vol, mic]
pcm0:       |
pcm0:       + <- nid=26 [pin: line in (jack)] [recsrc: vol, line]
pcm0:       |
pcm0:       + <- nid=28 [pin: CD (fixed)] [recsrc: vol, cd]
pcm0:       |
pcm0:       + <- nid=20 [pin: headphones out (jack / fix]
pcm0:       |
pcm0:       + <- nid=11 [audio mixer] [recsrc: vol, line, mic, cd]
pcm0: 
pcm0:     nid=35 [audio mixer]
pcm0:       |
pcm0:       + <- nid=24 [pin: Mic in (jack)] [recsrc: vol, mic]
pcm0:       |
pcm0:       + <- nid=25 [pin: Mic in (fixed)] [recsrc: vol, mic]
pcm0:       |
pcm0:       + <- nid=26 [pin: line in (jack)] [recsrc: vol, line]
pcm0:       |
pcm0:       + <- nid=28 [pin: CD (fixed)] [recsrc: vol, cd]
pcm0:       |
pcm0:       + <- nid=20 [pin: headphones out (jack / fix]
pcm0:       |
pcm0:       + <- nid=11 [audio mixer] [recsrc: vol, line, mic, cd]
pcm0: 
pcm0: +--------------------------------------+
pcm0: | DUMPING PCM Playback/Record Channels |
pcm0: +--------------------------------------+
pcm0: 
pcm0:    PCM Playback: 1
pcm0:      Stream cap: 0x00000001
pcm0:          Format: PCM
pcm0:         PCM cap: 0x000e0560
pcm0:        PCM size: 16 20 24
pcm0:        PCM rate: 44 48 96 192
pcm0:             DAC: 2 3 4 5 37
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: 8 9
acd0: FAILURE - INQUIRY ILLEGAL REQUEST asc=0x24 ascq=0x00 sks=0x40 0x00 0x01
(probe0:ata1:0:0:0): error 22
(probe0:ata1:0:0:0): Unretryable Error
(probe0:ata1:0:0:0): Down reving Protocol Version from 2 to 0?
(probe0:ata1:0:0:0): error 6
(probe0:ata1:0:0:0): Unretryable Error
acd0: FAILURE - INQUIRY ILLEGAL REQUEST asc=0x24 ascq=0x00 sks=0x40 0x00 0x01
(probe0:ata1:0:0:0): error 22
(probe0:ata1:0:0:0): Unretryable Error
pass0 at ata1 bus 0 target 0 lun 0
pass0: <HL-DT-ST DVDRAM GSA-T10N PP02> Removable CD-ROM SCSI-0 device GEOM: new disk cd0

pass0: 33.000MB/s transfers
ATA PseudoRAID loaded
(cd0:ata1:0:0:0): error 6
(cd0:ata1:0:0:0): Unretryable Error
cd0 at ata1 bus 0 target 0 lun 0
cd0: <HL-DT-ST DVDRAM GSA-T10N PP02> Removable CD-ROM SCSI-0 device 
cd0: 33.000MB/s transfers
cd0: Attempt to query device size failed: NOT READY, Medium not present
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
ioapic0: Assigning ISA IRQ 1 to local APIC 0
ioapic0: Assigning ISA IRQ 9 to local APIC 1
ioapic0: Assigning ISA IRQ 12 to local APIC 0
ioapic0: Assigning ISA IRQ 14 to local APIC 1
ioapic0: Assigning ISA IRQ 15 to local APIC 0
ioapic0: Assigning PCI IRQ 16 to local APIC 1
ioapic0: Assigning PCI IRQ 18 to local APIC 0
ioapic0: Assigning PCI IRQ 19 to local APIC 1
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 0
(cd0:ata1:0:0:0): error 6
(cd0:ata1:0:0:0): Unretryable Error
(cd0:ata1:0:0:0): error 6
(cd0:ata1:0:0:0): Unretryable Error
(cd0:ata1:0:0:0): error 6
(cd0:ata1:0:0:0): Unretryable Error
(cd0:ata1:0:0:0): error 6
(cd0:ata1:0:0:0): Unretryable Error
Trying to mount root from ufs:/dev/ad0s1a
start_init: trying /sbin/init
Linux ELF exec handler installed
linprocfs registered
WARNING: attempt to net_add_domain(bluetooth) after domainfinalize()
bfe0: link state changed to UP



>How-To-Repeat:

>Fix:


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-amd64->freebsd-multimedia 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Thu Nov 1 00:23:19 UTC 2007 
Responsible-Changed-Why:  
Over to the multimedia team. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=117729 
State-Changed-From-To: open->patched 
State-Changed-By: mav 
State-Changed-When: Mon Oct 13 11:24:24 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=117729 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/117729: commit references a PR
Date: Wed,  7 Jan 2009 15:29:06 +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:13:20 UTC 2009 
State-Changed-Why:  
Merged to 7-STABLE. 

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