Module Name: src
Committed By: christos
Date: Fri Sep 19 17:23:35 UTC 2014
Modified Files:
src/sys/dev/pci/hdaudio: files.hdaudio hdafg.c hdaudio.c
Added Files:
src/sys/dev/pci/hdaudio: Makefile.hdaudiodevs hdaudio_verbose.c
hdaudio_verbose.h hdaudiodevs
Removed Files:
src/sys/dev/pci/hdaudio: hdaudio_ids.c hdaudio_ids.h
Log Message:
Pull out the device list and auto-generate it.
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 src/sys/dev/pci/hdaudio/Makefile.hdaudiodevs \
src/sys/dev/pci/hdaudio/hdaudio_verbose.c \
src/sys/dev/pci/hdaudio/hdaudio_verbose.h \
src/sys/dev/pci/hdaudio/hdaudiodevs
cvs rdiff -u -r1.5 -r1.6 src/sys/dev/pci/hdaudio/files.hdaudio
cvs rdiff -u -r1.21 -r1.22 src/sys/dev/pci/hdaudio/hdafg.c
cvs rdiff -u -r1.22 -r1.23 src/sys/dev/pci/hdaudio/hdaudio.c
cvs rdiff -u -r1.8 -r0 src/sys/dev/pci/hdaudio/hdaudio_ids.c
cvs rdiff -u -r1.3 -r0 src/sys/dev/pci/hdaudio/hdaudio_ids.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/hdaudio/files.hdaudio
diff -u src/sys/dev/pci/hdaudio/files.hdaudio:1.5 src/sys/dev/pci/hdaudio/files.hdaudio:1.6
--- src/sys/dev/pci/hdaudio/files.hdaudio:1.5 Sat Feb 12 10:15:34 2011
+++ src/sys/dev/pci/hdaudio/files.hdaudio Fri Sep 19 13:23:35 2014
@@ -1,12 +1,12 @@
-# $NetBSD: files.hdaudio,v 1.5 2011/02/12 15:15:34 jmcneill Exp $
+# $NetBSD: files.hdaudio,v 1.6 2014/09/19 17:23:35 christos Exp $
#
# Intel High Definition Audio (Revision 1.0)
#
define hdaudiobus {[nid = -1]}
device hdaudio: hdaudiobus
-file dev/pci/hdaudio/hdaudio.c hdaudio
-file dev/pci/hdaudio/hdaudio_ids.c hdaudio
+file dev/pci/hdaudio/hdaudio.c hdaudio
+file dev/pci/hdaudio/hdaudio_verbose.c hdaudio & hdaudioverbose
device hdafg: audiobus, auconv, aurateconv, mulaw
attach hdafg at hdaudiobus
Index: src/sys/dev/pci/hdaudio/hdafg.c
diff -u src/sys/dev/pci/hdaudio/hdafg.c:1.21 src/sys/dev/pci/hdaudio/hdafg.c:1.22
--- src/sys/dev/pci/hdaudio/hdafg.c:1.21 Fri May 23 09:57:04 2014
+++ src/sys/dev/pci/hdaudio/hdafg.c Fri Sep 19 13:23:35 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: hdafg.c,v 1.21 2014/05/23 13:57:04 msaitoh Exp $ */
+/* $NetBSD: hdafg.c,v 1.22 2014/09/19 17:23:35 christos Exp $ */
/*
* Copyright (c) 2009 Precedence Technologies Ltd <[email protected]>
@@ -60,7 +60,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hdafg.c,v 1.21 2014/05/23 13:57:04 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hdafg.c,v 1.22 2014/09/19 17:23:35 christos Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -82,7 +82,8 @@ __KERNEL_RCSID(0, "$NetBSD: hdafg.c,v 1.
#include "hdaudioreg.h"
#include "hdaudio_mixer.h"
#include "hdaudioio.h"
-#include "hdaudio_ids.h"
+#include "hdaudio_verbose.h"
+#include "hdaudiodevs.h"
#include "hdafg_dd.h"
#include "hdmireg.h"
@@ -685,7 +686,7 @@ hdafg_widget_getcaps(struct hdaudio_widg
w->w_waspin = false;
switch (sc->sc_vendor) {
- case HDA_VENDOR_ANALOG_DEVICES:
+ case HDAUDIO_VENDOR_ANALOG:
/*
* help the parser by marking the analog
* beeper as a beep generator
@@ -3612,10 +3613,9 @@ hdafg_attach(device_t parent, device_t s
prop_dictionary_get_uint16(args, "vendor-id", &sc->sc_vendor);
prop_dictionary_get_uint16(args, "product-id", &sc->sc_product);
- hdaudio_id2name(sc->sc_vendor, HDA_PRODUCT_ANY,
- vendor, sizeof(vendor));
- hdaudio_id2name(sc->sc_vendor, sc->sc_product,
- product, sizeof(product));
+ get_hdaudio_vendor(vendor, sizeof(vendor), sc->sc_vendor);
+ get_hdaudio_product(product, sizeof(product), sc->sc_vendor,
+ sc->sc_product);
hda_print1(sc, ": %s %s%s\n", vendor, product,
sc->sc_config ? " (custom configuration)" : "");
@@ -3965,10 +3965,10 @@ hdafg_getdev(void *opaque, struct audio_
struct hdaudio_audiodev *ad = opaque;
struct hdafg_softc *sc = ad->ad_sc;
- hdaudio_id2name(sc->sc_vendor, HDA_PRODUCT_ANY,
- audiodev->name, sizeof(audiodev->name));
- hdaudio_id2name(sc->sc_vendor, sc->sc_product,
- audiodev->version, sizeof(audiodev->version));
+ get_hdaudio_vendor(audiodev->name, sizeof(audiodev->name),
+ sc->sc_vendor);
+ get_hdaudio_product(audiodev->version, sizeof(audiodev->version),
+ sc->sc_vendor, sc->sc_product);
snprintf(audiodev->config, sizeof(audiodev->config) - 1,
"%02Xh", sc->sc_nid);
Index: src/sys/dev/pci/hdaudio/hdaudio.c
diff -u src/sys/dev/pci/hdaudio/hdaudio.c:1.22 src/sys/dev/pci/hdaudio/hdaudio.c:1.23
--- src/sys/dev/pci/hdaudio/hdaudio.c:1.22 Fri Jul 25 04:10:38 2014
+++ src/sys/dev/pci/hdaudio/hdaudio.c Fri Sep 19 13:23:35 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: hdaudio.c,v 1.22 2014/07/25 08:10:38 dholland Exp $ */
+/* $NetBSD: hdaudio.c,v 1.23 2014/09/19 17:23:35 christos Exp $ */
/*
* Copyright (c) 2009 Precedence Technologies Ltd <[email protected]>
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hdaudio.c,v 1.22 2014/07/25 08:10:38 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hdaudio.c,v 1.23 2014/09/19 17:23:35 christos Exp $");
#include <sys/types.h>
#include <sys/param.h>
@@ -44,6 +44,7 @@ __KERNEL_RCSID(0, "$NetBSD: hdaudio.c,v
#include "hdaudiovar.h"
#include "hdaudioreg.h"
#include "hdaudioio.h"
+#include "hdaudio_verbose.h"
/* #define HDAUDIO_DEBUG */
@@ -1629,3 +1630,44 @@ hdaudio_modcmd(modcmd_t cmd, void *opaqu
return ENOTTY;
}
}
+
+void hdaudio_load_verbose(void);
+
+void get_hdaudio_vendor_stub(char *, size_t, hdaudio_vendor_id_t);
+void get_hdaudio_product_stub(char *, size_t, hdaudio_vendor_id_t,
+ hdaudio_product_id_t);
+
+void (*get_hdaudio_vendor)(char *, size_t, hdaudio_vendor_id_t) =
+ get_hdaudio_vendor_stub;
+void (*get_hdaudio_product)(char *, size_t, hdaudio_vendor_id_t,
+ hdaudio_product_id_t) = get_hdaudio_product_stub;
+
+int hdaudio_verbose_loaded = 0;
+
+/*
+ * Load the hdaudioverbose module
+ */
+void hdaudio_load_verbose(void)
+{
+ if (hdaudio_verbose_loaded == 0)
+ module_autoload("hdaudioverbose", MODULE_CLASS_MISC);
+}
+
+void get_hdaudio_vendor_stub(char *v, size_t l, hdaudio_vendor_id_t v_id)
+{
+ hdaudio_load_verbose();
+ if (hdaudio_verbose_loaded)
+ get_hdaudio_vendor(v, l, v_id);
+ else
+ snprintf(v, l, "vendor 0x%.4x", v_id);
+}
+
+void get_hdaudio_product_stub(char *p, size_t l, hdaudio_vendor_id_t v_id,
+ hdaudio_product_id_t p_id)
+{
+ hdaudio_load_verbose();
+ if (hdaudio_verbose_loaded)
+ get_hdaudio_product(p, l, v_id, p_id);
+ else
+ snprintf(p, l, "product 0x%.4x", p_id);
+}
Added files:
Index: src/sys/dev/pci/hdaudio/Makefile.hdaudiodevs
diff -u /dev/null src/sys/dev/pci/hdaudio/Makefile.hdaudiodevs:1.1
--- /dev/null Fri Sep 19 13:23:35 2014
+++ src/sys/dev/pci/hdaudio/Makefile.hdaudiodevs Fri Sep 19 13:23:35 2014
@@ -0,0 +1,18 @@
+# $NetBSD: Makefile.hdaudiodevs,v 1.1 2014/09/19 17:23:35 christos Exp $
+
+# The header files depend on the correct version of hdaudiodevs.
+#
+# Thus, the procedure is:
+# 1) change hdaudiodevs
+# 2) commit hdaudiodevs
+# 3) _then_ generate header files
+# 4) commit them
+
+.include <bsd.own.mk>
+
+UNAME= uname
+RM= rm
+
+hdaudiodevs.h hdaudiodevs_data.h: hdaudiodevs devlist2h.awk
+ ${RM} -f hdaudiodevs.h hdaudiodevs_data.h
+ ${TOOL_AWK} -v os=`${UNAME} -s` -f devlist2h.awk hdaudiodevs
Index: src/sys/dev/pci/hdaudio/hdaudio_verbose.c
diff -u /dev/null src/sys/dev/pci/hdaudio/hdaudio_verbose.c:1.1
--- /dev/null Fri Sep 19 13:23:35 2014
+++ src/sys/dev/pci/hdaudio/hdaudio_verbose.c Fri Sep 19 13:23:35 2014
@@ -0,0 +1,113 @@
+/* $NetBSD: hdaudio_verbose.c,v 1.1 2014/09/19 17:23:35 christos Exp $ */
+
+/*
+ * Copyright (c) 2014 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Lennart Augustsson ([email protected]) at
+ * Carlstedt Research & Technology.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: hdaudio_verbose.c,v 1.1 2014/09/19 17:23:35 christos Exp $");
+
+#include <sys/param.h>
+#include <sys/module.h>
+
+#include <dev/pci/hdaudio/hdaudio_verbose.h>
+
+/*
+ * Descriptions of known vendors and devices ("products").
+ */
+struct hdaudio_vendor {
+ hdaudio_vendor_id_t vendor;
+ const char *vendorname;
+};
+struct hdaudio_product {
+ hdaudio_vendor_id_t vendor;
+ hdaudio_product_id_t product;
+ const char *productname;
+};
+
+#include <dev/pci/hdaudio/hdaudiodevs.h>
+#include <dev/pci/hdaudio/hdaudiodevs_data.h>
+
+void get_hdaudio_vendor_real(char *, size_t, hdaudio_vendor_id_t);
+void get_hdaudio_product_real(char *, size_t, hdaudio_vendor_id_t, hdaudio_product_id_t);
+
+MODULE(MODULE_CLASS_MISC, hdaudioverbose, NULL);
+
+static int
+hdaudioverbose_modcmd(modcmd_t cmd, void *arg)
+{
+ static void (*saved_hdaudio_vendor)(char *, size_t, hdaudio_vendor_id_t);
+ static void (*saved_hdaudio_product)(char *, size_t, hdaudio_vendor_id_t,
+ hdaudio_product_id_t);
+
+ switch (cmd) {
+ case MODULE_CMD_INIT:
+ saved_hdaudio_vendor = get_hdaudio_vendor;
+ saved_hdaudio_product = get_hdaudio_product;
+ get_hdaudio_vendor = get_hdaudio_vendor_real;
+ get_hdaudio_product = get_hdaudio_product_real;
+ hdaudio_verbose_loaded = 1;
+ return 0;
+ case MODULE_CMD_FINI:
+ get_hdaudio_vendor = saved_hdaudio_vendor;
+ get_hdaudio_product = saved_hdaudio_product;
+ hdaudio_verbose_loaded = 0;
+ return 0;
+ default:
+ return ENOTTY;
+ }
+}
+
+void get_hdaudio_vendor_real(char *v, size_t vl, hdaudio_vendor_id_t v_id)
+{
+ int n;
+
+ /* There is no need for strlcpy below. */
+ for (n = 0; n < hdaudio_nvendors; n++)
+ if (hdaudio_vendors[n].vendor == v_id) {
+ strlcpy(v, hdaudio_vendors[n].vendorname, vl);
+ return;
+ }
+ snprintf(v, vl, "vendor 0x%.x", v_id);
+}
+
+void get_hdaudio_product_real(char *p, size_t pl, hdaudio_vendor_id_t v_id,
+ hdaudio_product_id_t p_id)
+{
+ int n;
+
+ /* There is no need for strlcpy below. */
+ for (n = 0; n < hdaudio_nproducts; n++)
+ if (hdaudio_products[n].vendor == v_id &&
+ hdaudio_products[n].product == p_id) {
+ strlcpy(p, hdaudio_products[n].productname, pl);
+ return;
+ }
+ snprintf(p, pl, "product 0x%.x", v_id);
+}
Index: src/sys/dev/pci/hdaudio/hdaudio_verbose.h
diff -u /dev/null src/sys/dev/pci/hdaudio/hdaudio_verbose.h:1.1
--- /dev/null Fri Sep 19 13:23:35 2014
+++ src/sys/dev/pci/hdaudio/hdaudio_verbose.h Fri Sep 19 13:23:35 2014
@@ -0,0 +1,45 @@
+/* $NetBSD: hdaudio_verbose.h,v 1.1 2014/09/19 17:23:35 christos Exp $ */
+
+/*
+ * Copyright (c) 1998, 2004 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Lennart Augustsson ([email protected]) at
+ * Carlstedt Research & Technology.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _DEV_PCI_HDAUDIO_HDAUDIO_VERBOSE_H_
+#define _DEV_PCI_HDAUDIO_HDAUDIO_VERBOSE_H_
+
+typedef u_int16_t hdaudio_vendor_id_t;
+typedef u_int16_t hdaudio_product_id_t;
+
+extern void (*get_hdaudio_vendor)(char *, size_t, hdaudio_vendor_id_t);
+extern void (*get_hdaudio_product)(char *, size_t, hdaudio_vendor_id_t,
+ hdaudio_product_id_t);
+
+extern int hdaudio_verbose_loaded;
+
+#endif /* _DEV_PCI_HDAUDIO_HDAUDIO_VERBOSE_H_ */
Index: src/sys/dev/pci/hdaudio/hdaudiodevs
diff -u /dev/null src/sys/dev/pci/hdaudio/hdaudiodevs:1.1
--- /dev/null Fri Sep 19 13:23:35 2014
+++ src/sys/dev/pci/hdaudio/hdaudiodevs Fri Sep 19 13:23:35 2014
@@ -0,0 +1,245 @@
+$NetBSD: hdaudiodevs,v 1.1 2014/09/19 17:23:35 christos Exp $
+
+/*
+ * Copyright (c) 2010 Jared D. McNeill <[email protected]>
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Precedence TeCHnologies Ltd
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/* The following is duplicated from pci except SIGMATEL* and CMEDIA */
+vendor ATI 0x1002 ATI Technologies
+vendor NVIDIA 0x10de NVIDIA
+vendor REALTEK 0x10ec Realtek Semiconductor
+vendor VIATECH 0x1106 VIA TeCHnologies
+vendor SIGMATEL2 0x111d Sigmatel
+vendor ANALOG 0x11d4 Analog Devices
+vendor CONEXANT 0x14f1 Conexant Systems
+vendor VMWARE 0x15ad VMware
+vendor CMEDIA 0x434d C-Media Electronics
+vendor INTEL 0x8086 Intel
+vendor SIGMATEL 0x8384 Sigmatel
+
+/* ATI */
+product ATI RS600_HDMI_1 0x7919 RS600 HDMI
+product ATI RS600_HDMI_2 0x793c RS600 HDMI
+product ATI RS690_780_HDMI 0x791a RS690/780 HDMI
+product ATI R6xx_HDMI 0xaa01 R6xx HDMI
+
+/* NVIDIA */
+product NVIDIA MCP77_78_HDMI_2 0x0002 MCP77/78 HDMI
+product NVIDIA MCP77_78_HDMI_3 0x0003 MCP77/78 HDMI
+product NVIDIA MCP77_78_HDMI_5 0x0005 MCP77/78 HDMI
+product NVIDIA MCP77_78_HDMI_6 0x0006 MCP77/78 HDMI
+product NVIDIA MCP79_7A_HDMI_7 0x0007 MCP79/7A HDMI
+product NVIDIA GT220_HDMI 0x000a GT220 HDMI
+product NVIDIA GT21x_HDMI 0x000b GT21x HDMI
+product NVIDIA MCP89_HDMI 0x000c MCP89 HDMI
+product NVIDIA GT240_HDMI 0x000d GT240 HDMI
+product NVIDIA GT5xx_HDMI_DP 0x0015 GT5xx HDMI/DP
+product NVIDIA MCP67_HDMI 0x0067 MCP67 HDMI
+product NVIDIA MCP73_HDMI 0x8001 MCP73 HDMI
+
+/* Realtek */
+product REALTEK ALC260 0x0260 ALC260
+product REALTEK ALC262 0x0262 ALC262
+product REALTEK ALC267 0x0267 ALC267
+product REALTEK ALC268 0x0268 ALC268
+product REALTEK ALC269 0x0269 ALC269
+product REALTEK ALC270 0x0270 ALC270
+product REALTEK ALC272 0x0272 ALC272
+product REALTEK ALC275 0x0275 ALC275
+product REALTEK ALC660_VD 0x0660 ALC660-VD
+product REALTEK ALC662 0x0662 ALC662
+product REALTEK ALC663 0x0663 ALC663
+product REALTEK ALC670 0x0670 ALC670
+product REALTEK ALC861 0x0861 ALC861
+product REALTEK ALC861_VD 0x0862 ALC861-VD
+product REALTEK ALC880 0x0880 ALC880
+product REALTEK ALC882 0x0882 ALC882
+product REALTEK ALC883 0x0883 ALC883
+product REALTEK ALC885 0x0885 ALC885
+product REALTEK ALC887 0x0887 ALC887
+product REALTEK ALC888 0x0888 ALC888
+product REALTEK ALC889 0x0889 ALC889
+product REALTEK ALC892 0x0892 ALC892
+
+/* VIA */
+product VIATECH VT1708 0x1708 VT1708
+product VIATECH VT1709 0x1709 VT1708
+product VIATECH VT170A 0x170a VT1708
+product VIATECH VT170B 0x170b VT1708
+product VIATECH VT1709_10CH_0 0xe710 VT1709 10ch
+product VIATECH VT1709_10CH_1 0xe711 VT1709 10ch
+product VIATECH VT1709_10CH_2 0xe712 VT1709 10ch
+product VIATECH VT1709_10CH_3 0xe713 VT1709 10ch
+product VIATECH VT1709_6CH_4 0xe714 VT1709 6ch
+product VIATECH VT1709_6CH_5 0xe715 VT1709 6ch
+product VIATECH VT1709_6CH_6 0xe716 VT1709 6ch
+product VIATECH VT1709_6CH_7 0xe717 VT1709 6ch
+product VIATECH VT1708B_8CH_0 0xe720 VT1708B 8ch
+product VIATECH VT1708B_8CH_1 0xe721 VT1708B 8ch
+product VIATECH VT1708B_8CH_2 0xe722 VT1708B 8ch
+product VIATECH VT1708B_8CH_3 0xe723 VT1708B 8ch
+product VIATECH VT1708B_4CH_4 0xe724 VT1708B 4ch
+product VIATECH VT1708B_4CH_5 0xe725 VT1708B 4ch
+product VIATECH VT1708B_4CH_6 0xe726 VT1708B 4ch
+product VIATECH VT1708B_4CH_7 0xe727 VT1708B 4ch
+product VIATECH VT1708S_0 0x0397 VT1708S
+product VIATECH VT1708S_1 0x1397 VT1708S
+product VIATECH VT1708S_2 0x2397 VT1708S
+product VIATECH VT1708S_3 0x3397 VT1708S
+product VIATECH VT1708S_4 0x4397 VT1708S
+product VIATECH VT1708S_5 0x5397 VT1708S
+product VIATECH VT1708S_6 0x6397 VT1708S
+product VIATECH VT1708S 0x7397 VT1708S
+product VIATECH VT1702_0 0x0398 VT1702
+product VIATECH VT1702_1 0x1398 VT1702
+product VIATECH VT1702_2 0x2398 VT1702
+product VIATECH VT1702_3 0x3398 VT1702
+product VIATECH VT1702_4 0x4398 VT1702
+product VIATECH VT1702_5 0x5398 VT1702
+product VIATECH VT1702_6 0x6398 VT1702
+product VIATECH VT1702_7 0x7398 VT1702
+product VIATECH VT1718S 0x0428 VT1718S
+product VIATECH VT1718S_1 0x4428 VT1718S
+product VIATECH VT2020 0x0441 VT2020
+product VIATECH VT1828S 0x4441 VT1828S
+product VIATECH VT1716S 0x0433 VT1716S
+product VIATECH VT1716S_1 0xa721 VT1716S
+product VIATECH VT2002P 0x0438 VT2002P
+product VIATECH VT2002P_1 0x4438 VT2002P
+product VIATECH VT1812 0x0448 VT1812
+product VIATECH VT1818S 0x0440 VT1818S
+product VIATECH VT1705 0x4760 VT1705
+
+/* Analog Devices */
+product ANALOG AD1884A 0x184a AD1884A
+product ANALOG AD1882 0x1882 AD1882
+product ANALOG AD1883 0x1883 AD1883
+product ANALOG AD1884 0x1884 AD1884
+product ANALOG AD1984A 0x194a AD1984A
+product ANALOG AD1984B 0x194b AD1984B
+product ANALOG AD1981HD 0x1981 AD1981HD
+product ANALOG AD1983 0x1983 AD1983
+product ANALOG AD1984 0x1984 AD1984
+product ANALOG AD1986A 0x1986 AD1986A
+product ANALOG AD1988A 0x1988 AD1988A
+product ANALOG AD1988B 0x198b AD1988B
+product ANALOG AD1989A 0x989a AD1989A
+product ANALOG AD1989B 0x989b AD1989B
+
+/* Conexant */
+product CONEXANT CX20549 0x5045 CX20549
+product CONEXANT CX20551 0x5047 CX20551
+product CONEXANT CX20561 0x5051 CX20561
+product CONEXANT CX20582 0x5066 CX20582
+product CONEXANT CX20583 0x5067 CX20583
+product CONEXANT CX20585 0x5069 CX20585
+product CONEXANT CX20671 0x506e CX20671
+
+/* CMedia */
+product CMEDIA CMI9880 0x4980 CMI9880
+
+/* Intel */
+product INTEL Q57_HDMI 0x0054 Q57 HDMI
+product INTEL G45_HDMI_1 0x2801 G45 HDMI/1
+product INTEL G45_HDMI_2 0x2802 G45 HDMI/2
+product INTEL G45_HDMI_3 0x2803 G45 HDMI/3
+product INTEL G45_HDMI_4 0x2804 G45 HDMI/4
+product INTEL G45_HDMI_FB 0x29fb G45 HDMI/FB
+
+/* Sigmatel */
+product SIGMATEL STAC9230X 0x7612 STAC9230X
+product SIGMATEL STAC9230D 0x7613 STAC9230D
+product SIGMATEL STAC9229X 0x7614 STAC9229X
+product SIGMATEL STAC9229D 0x7615 STAC9229D
+product SIGMATEL STAC9228X 0x7616 STAC9228X
+product SIGMATEL STAC9228D 0x7617 STAC9228D
+product SIGMATEL STAC9227X 0x7618 STAC9227X
+product SIGMATEL STAC9227D 0x7619 STAC9227D
+product SIGMATEL STAC9274 0x7620 STAC9274
+product SIGMATEL STAC9274D 0x7621 STAC9274D
+product SIGMATEL STAC9273X 0x7622 STAC9273X
+product SIGMATEL STAC9273D 0x7623 STAC9273D
+product SIGMATEL STAC9272X 0x7624 STAC9272X
+product SIGMATEL STAC9272D 0x7625 STAC9272D
+product SIGMATEL STAC9271X 0x7626 STAC9271X
+product SIGMATEL STAC9271D 0x7627 STAC9271D
+product SIGMATEL STAC9274X5NH 0x7628 STAC9274X5NH
+product SIGMATEL STAC9274D5NH 0x7629 STAC9274D5NH
+product SIGMATEL STAC9202 0x7632 STAC9202
+product SIGMATEL STAC9202D 0x7633 STAC9202D
+product SIGMATEL STAC9250 0x7634 STAC9250
+product SIGMATEL STAC9250D_1 0x7635 STAC9250D
+product SIGMATEL STAC9251 0x7636 STAC9251
+product SIGMATEL STAC9250D_2 0x7637 STAC9250D
+product SIGMATEL 92HD206X 0x7645 92HD206X
+product SIGMATEL 92HD206D 0x7646 92HD206D
+product SIGMATEL CXD9872RD_K 0x7661 CXD9872RD/K
+product SIGMATEL STAC9872AK 0x7662 STAC9872AK
+product SIGMATEL CXD9872AKD 0x7664 CXD9872AKD
+product SIGMATEL STAC9221_A1 0x7680 STAC9221 A1
+product SIGMATEL STAC9220D 0x7681 STAC9220D
+product SIGMATEL STAC9221_A2 0x7682 STAC9221 A2
+product SIGMATEL STAC9221D 0x7683 STAC9221D
+product SIGMATEL STAC9200 0x7690 STAC9200
+product SIGMATEL STAC9200D 0x7691 STAC9200D
+product SIGMATEL STAC9205 0x7698 STAC9205
+product SIGMATEL STAC9205_1 0x76a0 STAC9205
+product SIGMATEL STAC9205D 0x76a1 STAC9205D
+product SIGMATEL STAC9204 0x76a2 STAC9204
+product SIGMATEL STAC9204D 0x76a3 STAC9204D
+product SIGMATEL STAC9255 0x76a4 STAC9255
+product SIGMATEL STAC9255D 0x76a5 STAC9255D
+product SIGMATEL STAC9254 0x76a6 STAC9254
+product SIGMATEL STAC9254D 0x76a7 STAC9254D
+product SIGMATEL STAC9220_A2 0x7880 STAC9220 A2
+product SIGMATEL STAC9220_A1 0x7882 STAC9220 A1
+
+/* Sigmatel (alternate vendor ID) */
+product SIGMATEL2 92HD75B3X5 0x7603 92HD75B3X5
+product SIGMATEL2 92HD83C1X5 0x7604 92HD83C1X5
+product SIGMATEL2 92HD81B1X5 0x7605 92HD81B1X5
+product SIGMATEL2 92HD75B2X5 0x7608 92HD75B2X5
+product SIGMATEL2 92HD88B3 0x7666 92HD88B3
+product SIGMATEL2 92HD88B1 0x7667 92HD88B1
+product SIGMATEL2 92HD88B2 0x7668 92HD88B2
+product SIGMATEL2 92HD88B4 0x7669 92HD88B4
+product SIGMATEL2 92HD73D1X5 0x7674 92HD73D1X5
+product SIGMATEL2 92HD73C1X5 0x7675 92HD73C1X5
+product SIGMATEL2 92HD73E1X5 0x7676 92HD73E1X5
+product SIGMATEL2 92HD71B8X 0x76b0 92HD71B8X
+product SIGMATEL2 92HD71B8X_1 0x76b1 92HD71B8X
+product SIGMATEL2 92HD71B7X 0x76b2 92HD71B7X
+product SIGMATEL2 92HD71B7X_1 0x76b3 92HD71B7X
+product SIGMATEL2 92HD71B6X 0x76b4 92HD71B6X
+product SIGMATEL2 92HD71B6X_1 0x76b5 92HD71B6X
+product SIGMATEL2 92HD71B5X 0x76b6 92HD71B5X
+product SIGMATEL2 92HD71B5X_1 0x76b7 92HD71B5X
+product SIGMATEL2 92HD83C1C5 0x76d4 92HD83C1C5
+product SIGMATEL2 92HD81B1C5_1 0x76d5 92HD81B1C5
+
+/* VMware */
+product VMWARE VIRTUAL_HDA 0x1975 Virtual HDA