CloverBootloader/Drivers/AudioDxe/HdaModels.c
2019-09-03 12:58:42 +03:00

414 lines
25 KiB
C

/*
* File: HdaModels.c
*
* Copyright (c) 2018 John Davis
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
#include "AudioDxe.h"
#include <Library/HdaModels.h>
//
// Controller name strings.
//
HDA_CONTROLLER_LIST_ENTRY gHdaControllerList[] = {
// AMD.
{ HDA_CONTROLLER_AMDXXXX, L"AMD HD Audio Controller" },
// Intel.
{ HDA_CONTROLLER_ICH6, L"Intel ICH6 HD Audio Controller" },
{ HDA_CONTROLLER_63XXESB, L"Intel 63XXESB HD Audio Controller" },
{ HDA_CONTROLLER_ICH7, L"Intel ICH7 HD Audio Controller" },
{ HDA_CONTROLLER_ICH8, L"Intel ICH8 HD Audio Controller" },
{ HDA_CONTROLLER_ICH9, L"Intel ICH9 HD Audio Controller" },
{ HDA_CONTROLLER_ICH10_1, L"Intel ICH10 HD Audio Controller" },
{ HDA_CONTROLLER_ICH10_2, L"Intel ICH10 HD Audio Controller" },
{ HDA_CONTROLLER_5SERIES_1, L"Intel 5 Series HD Audio Controller" },
{ HDA_CONTROLLER_5SERIES_2, L"Intel 5 Series HD Audio Controller" },
{ HDA_CONTROLLER_6SERIES, L"Intel 6 Series HD Audio Controller" },
{ HDA_CONTROLLER_X79, L"Intel X79/C600 Series HD Audio Controller" },
{ HDA_CONTROLLER_7SERIES, L"Intel 7 Series HD Audio Controller" },
{ HDA_CONTROLLER_8SERIES_1, L"Intel 8 Series HD Audio Controller" },
{ HDA_CONTROLLER_8SERIES_2, L"Intel 8 Series HD Audio Controller" },
{ HDA_CONTROLLER_8SERIES_3, L"Intel 8 Series HD Audio Controller" },
{ HDA_CONTROLLER_8SERIES_4, L"Intel 8 Series HD Audio Controller" },
{ HDA_CONTROLLER_9SERIES_1, L"Intel 9 Series HD Audio Controller" },
{ HDA_CONTROLLER_9SERIES_2, L"Intel 9 Series HD Audio Controller" },
{ HDA_CONTROLLER_X99_1, L"Intel X99/C610 Series HD Audio Controller" },
{ HDA_CONTROLLER_X99_2, L"Intel X99/C610 Series HD Audio Controller" },
{ HDA_CONTROLLER_100SERIES, L"Intel 100 Series HD Audio Controller" },
{ HDA_CONTROLLER_200SERIES, L"Intel 200 Series HD Audio Controller" },
{ HDA_CONTROLLER_300SERIES, L"Intel 300 Series HD Audio Controller" },
{ HDA_CONTROLLER_HASWELL_1, L"Intel Haswell HD Audio Controller" },
{ HDA_CONTROLLER_HASWELL_2, L"Intel Ivy Bridge/Haswell HD Audio Controller" },
{ HDA_CONTROLLER_CRYSTALWELL, L"Intel Crystal Well HD Audio Controller" },
{ HDA_CONTROLLER_BROADWELL, L"Intel Broadwell HD Audio Controller" },
{ HDA_CONTROLLER_INTELXXXX, L"Intel HD Audio Controller" },
// NVIDIA
{ HDA_CONTROLLER_MCP51, L"NVIDIA MCP51 HD Audio Controller" },
{ HDA_CONTROLLER_MCP55, L"NVIDIA MCP55 HD Audio Controller" },
{ HDA_CONTROLLER_MCP61_1, L"NVIDIA MCP61 HD Audio Controller" },
{ HDA_CONTROLLER_MCP61_2, L"NVIDIA MCP61 HD Audio Controller" },
{ HDA_CONTROLLER_MCP65_1, L"NVIDIA MCP65 HD Audio Controller" },
{ HDA_CONTROLLER_MCP65_2, L"NVIDIA MCP65 HD Audio Controller" },
{ HDA_CONTROLLER_MCP67_1, L"NVIDIA MCP67 HD Audio Controller" },
{ HDA_CONTROLLER_MCP67_2, L"NVIDIA MCP67 HD Audio Controller" },
{ HDA_CONTROLLER_MCP72, L"NVIDIA MCP72 HD Audio Controller" },
{ HDA_CONTROLLER_MCP73, L"NVIDIA MCP73 HD Audio Controller" },
{ HDA_CONTROLLER_MCP79_1, L"NVIDIA MCP79 HD Audio Controller" },
{ HDA_CONTROLLER_MCP79_2, L"NVIDIA MCP79 HD Audio Controller" },
{ HDA_CONTROLLER_MCP79_3, L"NVIDIA MCP79 HD Audio Controller" },
{ HDA_CONTROLLER_MCP79_4, L"NVIDIA MCP79 HD Audio Controller" },
{ HDA_CONTROLLER_MCP89, L"NVIDIA MCP89 HD Audio Controller" },
{ HDA_CONTROLLER_GT216, L"NVIDIA GT216 HD Audio Controller" },
{ HDA_CONTROLLER_GF100, L"NVIDIA GF100 HD Audio Controller" },
{ HDA_CONTROLLER_GF106, L"NVIDIA GF106 HD Audio Controller" },
{ HDA_CONTROLLER_GF108, L"NVIDIA GF108 HD Audio Controller" },
{ HDA_CONTROLLER_GF104, L"NVIDIA GF104 HD Audio Controller" },
{ HDA_CONTROLLER_GF116, L"NVIDIA GF116 HD Audio Controller" },
{ HDA_CONTROLLER_GF119, L"NVIDIA GF119 HD Audio Controller" },
{ HDA_CONTROLLER_GF110, L"NVIDIA GF110 HD Audio Controller" },
{ HDA_CONTROLLER_GK104, L"NVIDIA GK104 HD Audio Controller" },
{ HDA_CONTROLLER_GK106, L"NVIDIA GK106 HD Audio Controller" },
{ HDA_CONTROLLER_GF114, L"NVIDIA GF114 HD Audio Controller" },
{ HDA_CONTROLLER_GK208, L"NVIDIA GK208 HD Audio Controller" },
{ HDA_CONTROLLER_GK110, L"NVIDIA GK110 HD Audio Controller" },
{ HDA_CONTROLLER_GK107, L"NVIDIA GK107 HD Audio Controller" },
{ HDA_CONTROLLER_GM200, L"NVIDIA GM200 HD Audio Controller" },
{ HDA_CONTROLLER_GP108, L"NVIDIA GP108 HD Audio Controller" },
{ HDA_CONTROLLER_GP107GL, L"NVIDIA GP107GL HD Audio Controller" },
{ HDA_CONTROLLER_GM206, L"NVIDIA GM206 HD Audio Controller" },
{ HDA_CONTROLLER_GM204, L"NVIDIA GM204 HD Audio Controller" },
{ HDA_CONTROLLER_GP102, L"NVIDIA GP102 HD Audio Controller" },
{ HDA_CONTROLLER_GP104, L"NVIDIA GP104 HD Audio Controller" },
{ HDA_CONTROLLER_GP106, L"NVIDIA GP106 HD Audio Controller" },
{ HDA_CONTROLLER_TU102, L"NVIDIA TU102 HD Audio Controller" },
{ HDA_CONTROLLER_NVIDIAXXXX, L"NVIDIA HD Audio Controller" },
// End.
{ 0, NULL }
};
//
// Codec name strings.
//
HDA_CODEC_LIST_ENTRY gHdaCodecList[] = {
// AMD.
{ HDA_CODEC_AMDXXXX, 0x0000, L"AMD (Unknown)" },
// Analog Devices.
{ HDA_CODEC_AD1882, 0x0000, L"Analog Devices AD1882" },
{ HDA_CODEC_AD1882A, 0x0000, L"Analog Devices AD1882A" },
{ HDA_CODEC_AD1883, 0x0000, L"Analog Devices AD1883" },
{ HDA_CODEC_AD1884, 0x0000, L"Analog Devices AD1884" },
{ HDA_CODEC_AD1884A, 0x0000, L"Analog Devices AD1884A" },
{ HDA_CODEC_AD1981HD, 0x0000, L"Analog Devices AD1981HD" },
{ HDA_CODEC_AD1983, 0x0000, L"Analog Devices AD1983" },
{ HDA_CODEC_AD1984, 0x0000, L"Analog Devices AD1984" },
{ HDA_CODEC_AD1984A, 0x0000, L"Analog Devices AD1984A" },
{ HDA_CODEC_AD1984B, 0x0000, L"Analog Devices AD1984B" },
{ HDA_CODEC_AD1986A, 0x0000, L"Analog Devices AD1986A" },
{ HDA_CODEC_AD1987, 0x0000, L"Analog Devices AD1987" },
{ HDA_CODEC_AD1988, 0x0000, L"Analog Devices AD1988A" },
{ HDA_CODEC_AD1988B, 0x0000, L"Analog Devices AD1988B" },
{ HDA_CODEC_AD1989A, 0x0000, L"Analog Devices AD1989A" },
{ HDA_CODEC_AD1989B, 0x0000, L"Analog Devices AD2000b" },
{ HDA_CODEC_ADXXXX, 0x0000, L"Analog Devices (Unknown)" },
// Cirrus Logic.
{ HDA_CODEC_CS4206, 0x0000, L"Cirrus Logic CS4206" },
{ HDA_CODEC_CS4207, 0x0000, L"Cirrus Logic CS4207" },
{ HDA_CODEC_CS4210, 0x0000, L"Cirrus Logic CS4210" },
{ HDA_CODEC_CSXXXX, 0x0000, L"Cirrus Logic (Unknown)" },
// Conexant.
{ HDA_CODEC_CX20549, 0x0000, L"Conexant CX20549 (Venice)" },
{ HDA_CODEC_CX20551, 0x0000, L"Conexant CX20551 (Waikiki)" },
{ HDA_CODEC_CX20561, 0x0000, L"Conexant CX20561 (Hermosa)" },
{ HDA_CODEC_CX20582, 0x0000, L"Conexant CX20582 (Pebble)" },
{ HDA_CODEC_CX20583, 0x0000, L"Conexant CX20583 (Pebble HSF)" },
{ HDA_CODEC_CX20584, 0x0000, L"Conexant CX20584" },
{ HDA_CODEC_CX20585, 0x0000, L"Conexant CX20585" },
{ HDA_CODEC_CX20588, 0x0000, L"Conexant CX20588" },
{ HDA_CODEC_CX20590, 0x0000, L"Conexant CX20590" },
{ HDA_CODEC_CX20631, 0x0000, L"Conexant CX20631" },
{ HDA_CODEC_CX20632, 0x0000, L"Conexant CX20632" },
{ HDA_CODEC_CX20641, 0x0000, L"Conexant CX20641" },
{ HDA_CODEC_CX20642, 0x0000, L"Conexant CX20642" },
{ HDA_CODEC_CX20651, 0x0000, L"Conexant CX20651" },
{ HDA_CODEC_CX20652, 0x0000, L"Conexant CX20652" },
{ HDA_CODEC_CX20664, 0x0000, L"Conexant CX20664" },
{ HDA_CODEC_CX20665, 0x0000, L"Conexant CX20665" },
{ HDA_CODEC_CXXXXX, 0x0000, L"Conexant (Unknown)" },
// Creative.
{ HDA_CODEC_CA0110, 0x0000, L"Creative CA0110-IBG" },
{ HDA_CODEC_CA0110_2, 0x0000, L"Creative CA0110-IBG" },
{ HDA_CODEC_CA0132, 0x0000, L"Creative CA0132" },
{ HDA_CODEC_SB0880, 0x0000, L"Creative SB0880 X-Fi" },
{ HDA_CODEC_CAXXXX, 0x0000, L"Creative (Unknown)" },
// IDT.
{ HDA_CODEC_IDT92HD005, 0x0000, L"IDT 92HD005" },
{ HDA_CODEC_IDT92HD005D, 0x0000, L"IDT 92HD005D" },
{ HDA_CODEC_IDT92HD206X, 0x0000, L"IDT 92HD206X" },
{ HDA_CODEC_IDT92HD206D, 0x0000, L"IDT 92HD206D" },
{ HDA_CODEC_IDT92HD66B1X5, 0x0000, L"IDT 92HD66B1X5" },
{ HDA_CODEC_IDT92HD66B2X5, 0x0000, L"IDT 92HD66B2X5" },
{ HDA_CODEC_IDT92HD66B3X5, 0x0000, L"IDT 92HD66B3X5" },
{ HDA_CODEC_IDT92HD66C1X5, 0x0000, L"IDT 92HD66C1X5" },
{ HDA_CODEC_IDT92HD66C2X5, 0x0000, L"IDT 92HD66C2X5" },
{ HDA_CODEC_IDT92HD66C3X5, 0x0000, L"IDT 92HD66C3X5" },
{ HDA_CODEC_IDT92HD66B1X3, 0x0000, L"IDT 92HD66B1X3" },
{ HDA_CODEC_IDT92HD66B2X3, 0x0000, L"IDT 92HD66B2X3" },
{ HDA_CODEC_IDT92HD66B3X3, 0x0000, L"IDT 92HD66B3X3" },
{ HDA_CODEC_IDT92HD66C1X3, 0x0000, L"IDT 92HD66C1X3" },
{ HDA_CODEC_IDT92HD66C2X3, 0x0000, L"IDT 92HD66C2X3" },
{ HDA_CODEC_IDT92HD66C3_65, 0x0000, L"IDT 92HD66C3_65" },
{ HDA_CODEC_IDT92HD700X, 0x0000, L"IDT 92HD700X" },
{ HDA_CODEC_IDT92HD700D, 0x0000, L"IDT 92HD700D" },
{ HDA_CODEC_IDT92HD71B5, 0x0000, L"IDT 92HD71B5" },
{ HDA_CODEC_IDT92HD71B5_2, 0x0000, L"IDT 92HD71B5" },
{ HDA_CODEC_IDT92HD71B6, 0x0000, L"IDT 92HD71B6" },
{ HDA_CODEC_IDT92HD71B6_2, 0x0000, L"IDT 92HD71B6" },
{ HDA_CODEC_IDT92HD71B7, 0x0000, L"IDT 92HD71B7" },
{ HDA_CODEC_IDT92HD71B7_2, 0x0000, L"IDT 92HD71B7" },
{ HDA_CODEC_IDT92HD71B8, 0x0000, L"IDT 92HD71B8" },
{ HDA_CODEC_IDT92HD71B8_2, 0x0000, L"IDT 92HD71B8" },
{ HDA_CODEC_IDT92HD73C1, 0x0000, L"IDT 92HD73C1" },
{ HDA_CODEC_IDT92HD73D1, 0x0000, L"IDT 92HD73D1" },
{ HDA_CODEC_IDT92HD73E1, 0x0000, L"IDT 92HD73E1" },
{ HDA_CODEC_IDT92HD75B3, 0x0000, L"IDT 92HD75B3" },
{ HDA_CODEC_IDT92HD75BX, 0x0000, L"IDT 92HD75BX" },
{ HDA_CODEC_IDT92HD81B1C, 0x0000, L"IDT 92HD81B1C" },
{ HDA_CODEC_IDT92HD81B1X, 0x0000, L"IDT 92HD81B1X" },
{ HDA_CODEC_IDT92HD83C1C, 0x0000, L"IDT 92HD83C1C" },
{ HDA_CODEC_IDT92HD83C1X, 0x0000, L"IDT 92HD83C1X" },
{ HDA_CODEC_IDT92HD87B1_3, 0x0000, L"IDT 92HD87B1/3" },
{ HDA_CODEC_IDT92HD87B2_4, 0x0000, L"IDT 92HD87B2/4" },
{ HDA_CODEC_IDT92HD89C3, 0x0000, L"IDT 92HD89C3" },
{ HDA_CODEC_IDT92HD89C2, 0x0000, L"IDT 92HD89C2" },
{ HDA_CODEC_IDT92HD89C1, 0x0000, L"IDT 92HD89C1" },
{ HDA_CODEC_IDT92HD89B3, 0x0000, L"IDT 92HD89B3" },
{ HDA_CODEC_IDT92HD89B2, 0x0000, L"IDT 92HD89B2" },
{ HDA_CODEC_IDT92HD89B1, 0x0000, L"IDT 92HD89B1" },
{ HDA_CODEC_IDT92HD89E3, 0x0000, L"IDT 92HD89E3" },
{ HDA_CODEC_IDT92HD89E2, 0x0000, L"IDT 92HD89E2" },
{ HDA_CODEC_IDT92HD89E1, 0x0000, L"IDT 92HD89E1" },
{ HDA_CODEC_IDT92HD89D3, 0x0000, L"IDT 92HD89D3" },
{ HDA_CODEC_IDT92HD89D2, 0x0000, L"IDT 92HD89D2" },
{ HDA_CODEC_IDT92HD89D1, 0x0000, L"IDT 92HD89D1" },
{ HDA_CODEC_IDT92HD89F3, 0x0000, L"IDT 92HD89F3" },
{ HDA_CODEC_IDT92HD89F2, 0x0000, L"IDT 92HD89F2" },
{ HDA_CODEC_IDT92HD89F1, 0x0000, L"IDT 92HD89F1" },
{ HDA_CODEC_IDT92HD90BXX, 0x0000, L"IDT 92HD90BXX" },
{ HDA_CODEC_IDT92HD91BXX, 0x0000, L"IDT 92HD91BXX" },
{ HDA_CODEC_IDT92HD93BXX, 0x0000, L"IDT 92HD93BXX" },
{ HDA_CODEC_IDT92HD98BXX, 0x0000, L"IDT 92HD98BXX" },
{ HDA_CODEC_IDT92HD99BXX, 0x0000, L"IDT 92HD99BXX" },
{ HDA_CODEC_IDTXXXX, 0x0000, L"IDT (Unknown)" },
// Intel.
{ HDA_CODEC_INTELCRESTLINE, 0x0000, L"Intel Crestline HDMI" },
{ HDA_CODEC_INTELBEARLAKE, 0x0000, L"Intel Bearlake HDMI" },
{ HDA_CODEC_INTELCANTIGA, 0x0000, L"Intel Cantiga HDMI" },
{ HDA_CODEC_INTELEAGLELAKE, 0x0000, L"Intel Eaglelake HDMI" },
{ HDA_CODEC_INTELIBEXPEAK, 0x0000, L"Intel Ibex Peak HDMI" },
{ HDA_CODEC_INTELIBEXPEAK2, 0x0000, L"Intel Ibex Peak HDMI" },
{ HDA_CODEC_INTELCOUGARPOINT, 0x0000, L"Intel Cougar Point HDMI" },
{ HDA_CODEC_INTELPANTHERPOINT, 0x0000, L"Intel Panther Point HDMI" },
{ HDA_CODEC_INTELHASWELL, 0x0000, L"Intel Haswell HDMI" },
{ HDA_CODEC_INTELBROADWELL, 0x0000, L"Intel Broadwell HDMI" },
{ HDA_CODEC_INTELSKYLAKE, 0x0000, L"Intel Skylake HDMI" },
{ HDA_CODEC_INTELBROXTON, 0x0000, L"Intel Broxton HDMI" },
{ HDA_CODEC_INTELKABYLAKE, 0x0000, L"Intel Kaby Lake HDMI" },
{ HDA_CODEC_INTELCANNONLAKE, 0x0000, L"Intel Cannon Lake HDMI" },
{ HDA_CODEC_INTELGEMINILAKE, 0x0000, L"Intel Gemini Lake HDMI" },
{ HDA_CODEC_INTELGEMINILAKE2, 0x0000, L"Intel Gemini Lake HDMI" },
{ HDA_CODEC_INTELXXXX, 0x0000, L"Intel (Unknown)" },
// NVIDIA.
{ HDA_CODEC_NVIDIAXXXX, 0x0000, L"NVIDIA (Unknown)" },
// Realtek.
{ HDA_CODEC_ALC221, 0x0000, L"Realtek ALC221" },
{ HDA_CODEC_ALC225, 0x0000, L"Realtek ALC225" },
{ HDA_CODEC_ALC230, 0x0000, L"Realtek ALC230" },
{ HDA_CODEC_ALC233, 0x0000, L"Realtek ALC233" },
{ HDA_CODEC_ALC235, 0x0000, L"Realtek ALC235" },
{ HDA_CODEC_ALC236, 0x0000, L"Realtek ALC236" },
{ HDA_CODEC_ALC255, 0x0000, L"Realtek ALC255" },
{ HDA_CODEC_ALC256, 0x0000, L"Realtek ALC256" },
{ HDA_CODEC_ALC257, 0x0000, L"Realtek ALC257" },
{ HDA_CODEC_ALC260, 0x0000, L"Realtek ALC260" },
{ HDA_CODEC_ALC262, 0x0000, L"Realtek ALC262" },
{ HDA_CODEC_ALC267, 0x0000, L"Realtek ALC267" },
{ HDA_CODEC_ALC268, 0x0000, L"Realtek ALC268" },
{ HDA_CODEC_ALC269, 0x0000, L"Realtek ALC269" },
{ HDA_CODEC_ALC270, 0x0000, L"Realtek ALC270" },
{ HDA_CODEC_ALC272, 0x0000, L"Realtek ALC272" },
{ HDA_CODEC_ALC273, 0x0000, L"Realtek ALC273" },
{ HDA_CODEC_ALC275, 0x0000, L"Realtek ALC275" },
{ HDA_CODEC_ALC276, 0x0000, L"Realtek ALC276" },
{ HDA_CODEC_ALC280, 0x0000, L"Realtek ALC280" },
{ HDA_CODEC_ALC282, 0x0000, L"Realtek ALC282" },
{ HDA_CODEC_ALC283, 0x0000, L"Realtek ALC283" },
{ HDA_CODEC_ALC284, 0x0000, L"Realtek ALC284" },
{ HDA_CODEC_ALC285, 0x0000, L"Realtek ALC285" },
{ HDA_CODEC_ALC286, 0x0000, L"Realtek ALC286" },
{ HDA_CODEC_ALC288, 0x0000, L"Realtek ALC288" },
{ HDA_CODEC_ALC289, 0x0000, L"Realtek ALC289" },
{ HDA_CODEC_ALC290, 0x0000, L"Realtek ALC290" },
{ HDA_CODEC_ALC292, 0x0000, L"Realtek ALC292" },
{ HDA_CODEC_ALC293, 0x0000, L"Realtek ALC293" },
{ HDA_CODEC_ALC294, 0x0000, L"Realtek ALC294" },
{ HDA_CODEC_ALC295, 0x0000, L"Realtek ALC295" },
{ HDA_CODEC_ALC298, 0x0000, L"Realtek ALC298" },
{ HDA_CODEC_ALC660, 0x0000, L"Realtek ALC660" },
{ HDA_CODEC_ALC662, 0x0002, L"Realtek ALC662v2" },
{ HDA_CODEC_ALC662, 0x0000, L"Realtek ALC662" },
{ HDA_CODEC_ALC663, 0x0000, L"Realtek ALC663" },
{ HDA_CODEC_ALC665, 0x0000, L"Realtek ALC665" },
{ HDA_CODEC_ALC668, 0x0000, L"Realtek ALC668" },
{ HDA_CODEC_ALC670, 0x0000, L"Realtek ALC670" },
{ HDA_CODEC_ALC671, 0x0000, L"Realtek ALC671" },
{ HDA_CODEC_ALC680, 0x0000, L"Realtek ALC680" },
{ HDA_CODEC_ALC861, 0x0000, L"Realtek ALC861" },
{ HDA_CODEC_ALC861VD, 0x0000, L"Realtek ALC861-VD" },
{ HDA_CODEC_ALC880, 0x0000, L"Realtek ALC880" },
{ HDA_CODEC_ALC882, 0x0000, L"Realtek ALC882" },
{ HDA_CODEC_ALC883, 0x0000, L"Realtek ALC883" },
{ HDA_CODEC_ALC885, 0x0103, L"Realtek ALC889A" },
{ HDA_CODEC_ALC885, 0x0101, L"Realtek ALC889A" },
{ HDA_CODEC_ALC885, 0x0000, L"Realtek ALC885" },
{ HDA_CODEC_ALC887, 0x0302, L"Realtek ALC888B" },
{ HDA_CODEC_ALC887, 0x0002, L"Realtek ALC887-VD2" },
{ HDA_CODEC_ALC887, 0x0001, L"Realtek ALC887-VD" },
{ HDA_CODEC_ALC887, 0x0000, L"Realtek ALC887" },
{ HDA_CODEC_ALC888, 0x0003, L"Realtek ALC888S-VD" },
{ HDA_CODEC_ALC888, 0x0002, L"Realtek ALC888S-VC" },
{ HDA_CODEC_ALC888, 0x0001, L"Realtek ALC888S" },
{ HDA_CODEC_ALC888, 0x0000, L"Realtek ALC888" },
{ HDA_CODEC_ALC889, 0x0000, L"Realtek ALC889" },
{ HDA_CODEC_ALC892, 0x0000, L"Realtek ALC892" },
{ HDA_CODEC_ALC898, 0x0000, L"Realtek ALC898" },
{ HDA_CODEC_ALC899, 0x0000, L"Realtek ALC899" },
{ HDA_CODEC_ALC1150, 0x0000, L"Realtek ALC1150" },
{ HDA_CODEC_ALC1220, 0x0000, L"Realtek ALC1220" },
{ HDA_CODEC_ALCXXXX, 0x0000, L"Realtek (Unknown)" },
// Sigmatel.
{ HDA_CODEC_CXD9872RDK, 0x0000, L"Sigmatel CXD9872RD/K" },
{ HDA_CODEC_CXD9872AKD, 0x0000, L"Sigmatel CXD9872AKD" },
{ HDA_CODEC_STAC9200D, 0x0000, L"Sigmatel STAC9200D" },
{ HDA_CODEC_STAC9204X, 0x0000, L"Sigmatel STAC9204X" },
{ HDA_CODEC_STAC9204D, 0x0000, L"Sigmatel STAC9204D" },
{ HDA_CODEC_STAC9205X, 0x0000, L"Sigmatel STAC9205X" },
{ HDA_CODEC_STAC9205D, 0x0000, L"Sigmatel STAC9205D" },
{ HDA_CODEC_STAC9220, 0x0000, L"Sigmatel STAC9220" },
{ HDA_CODEC_STAC9220_A1, 0x0000, L"Sigmatel STAC9220_A1" },
{ HDA_CODEC_STAC9220_A2, 0x0000, L"Sigmatel STAC9220_A2" },
{ HDA_CODEC_STAC9221, 0x0000, L"Sigmatel STAC9221" },
{ HDA_CODEC_STAC9221_A2, 0x0000, L"Sigmatel STAC9221_A2" },
{ HDA_CODEC_STAC9221D, 0x0000, L"Sigmatel STAC9221D" },
{ HDA_CODEC_STAC922XD, 0x0000, L"Sigmatel STAC9220D/9223D" },
{ HDA_CODEC_STAC9227X, 0x0000, L"Sigmatel STAC9227X" },
{ HDA_CODEC_STAC9227D, 0x0000, L"Sigmatel STAC9227D" },
{ HDA_CODEC_STAC9228X, 0x0000, L"Sigmatel STAC9228X" },
{ HDA_CODEC_STAC9228D, 0x0000, L"Sigmatel STAC9228D" },
{ HDA_CODEC_STAC9229X, 0x0000, L"Sigmatel STAC9229X" },
{ HDA_CODEC_STAC9229D, 0x0000, L"Sigmatel STAC9229D" },
{ HDA_CODEC_STAC9230X, 0x0000, L"Sigmatel STAC9230X" },
{ HDA_CODEC_STAC9230D, 0x0000, L"Sigmatel STAC9230D" },
{ HDA_CODEC_STAC9250, 0x0000, L"Sigmatel STAC9250" },
{ HDA_CODEC_STAC9251, 0x0000, L"Sigmatel STAC9251" },
{ HDA_CODEC_STAC9255, 0x0000, L"Sigmatel STAC9255" },
{ HDA_CODEC_STAC9255D, 0x0000, L"Sigmatel STAC9255D" },
{ HDA_CODEC_STAC9254, 0x0000, L"Sigmatel STAC9254" },
{ HDA_CODEC_STAC9254D, 0x0000, L"Sigmatel STAC9254D" },
{ HDA_CODEC_STAC9271X, 0x0000, L"Sigmatel STAC9271X" },
{ HDA_CODEC_STAC9271D, 0x0000, L"Sigmatel STAC9271D" },
{ HDA_CODEC_STAC9272X, 0x0000, L"Sigmatel STAC9272X" },
{ HDA_CODEC_STAC9272D, 0x0000, L"Sigmatel STAC9272D" },
{ HDA_CODEC_STAC9273X, 0x0000, L"Sigmatel STAC9273X" },
{ HDA_CODEC_STAC9273D, 0x0000, L"Sigmatel STAC9273D" },
{ HDA_CODEC_STAC9274, 0x0000, L"Sigmatel STAC9274" },
{ HDA_CODEC_STAC9274D, 0x0000, L"Sigmatel STAC9274D" },
{ HDA_CODEC_STAC9274X5NH, 0x0000, L"Sigmatel STAC9274X5NH" },
{ HDA_CODEC_STAC9274D5NH, 0x0000, L"Sigmatel STAC9274D5NH" },
{ HDA_CODEC_STAC9872AK, 0x0000, L"Sigmatel STAC9872AK" },
{ HDA_CODEC_STACXXXX, 0x0000, L"Sigmatel (Unknown)" },
// VIA.
{ HDA_CODEC_VT1708_8, 0x0000, L"VIA VT1708_8" },
{ HDA_CODEC_VT1708_9, 0x0000, L"VIA VT1708_9" },
{ HDA_CODEC_VT1708_A, 0x0000, L"VIA VT1708_A" },
{ HDA_CODEC_VT1708_B, 0x0000, L"VIA VT1708_B" },
{ HDA_CODEC_VT1709_0, 0x0000, L"VIA VT1709_0" },
{ HDA_CODEC_VT1709_1, 0x0000, L"VIA VT1709_1" },
{ HDA_CODEC_VT1709_2, 0x0000, L"VIA VT1709_2" },
{ HDA_CODEC_VT1709_3, 0x0000, L"VIA VT1709_3" },
{ HDA_CODEC_VT1709_4, 0x0000, L"VIA VT1709_4" },
{ HDA_CODEC_VT1709_5, 0x0000, L"VIA VT1709_5" },
{ HDA_CODEC_VT1709_6, 0x0000, L"VIA VT1709_6" },
{ HDA_CODEC_VT1709_7, 0x0000, L"VIA VT1709_7" },
{ HDA_CODEC_VT1708B_0, 0x0000, L"VIA VT1708B_0" },
{ HDA_CODEC_VT1708B_1, 0x0000, L"VIA VT1708B_1" },
{ HDA_CODEC_VT1708B_2, 0x0000, L"VIA VT1708B_2" },
{ HDA_CODEC_VT1708B_3, 0x0000, L"VIA VT1708B_3" },
{ HDA_CODEC_VT1708B_4, 0x0000, L"VIA VT1708B_4" },
{ HDA_CODEC_VT1708B_5, 0x0000, L"VIA VT1708B_5" },
{ HDA_CODEC_VT1708B_6, 0x0000, L"VIA VT1708B_6" },
{ HDA_CODEC_VT1708B_7, 0x0000, L"VIA VT1708B_7" },
{ HDA_CODEC_VT1708S_0, 0x0000, L"VIA VT1708S_0" },
{ HDA_CODEC_VT1708S_1, 0x0000, L"VIA VT1708S_1" },
{ HDA_CODEC_VT1708S_2, 0x0000, L"VIA VT1708S_2" },
{ HDA_CODEC_VT1708S_3, 0x0000, L"VIA VT1708S_3" },
{ HDA_CODEC_VT1708S_4, 0x0000, L"VIA VT1708S_4" },
{ HDA_CODEC_VT1708S_5, 0x0000, L"VIA VT1708S_5" },
{ HDA_CODEC_VT1708S_6, 0x0000, L"VIA VT1708S_6" },
{ HDA_CODEC_VT1708S_7, 0x0000, L"VIA VT1708S_7" },
{ HDA_CODEC_VT1702_0, 0x0000, L"VIA VT1702_0" },
{ HDA_CODEC_VT1702_1, 0x0000, L"VIA VT1702_1" },
{ HDA_CODEC_VT1702_2, 0x0000, L"VIA VT1702_2" },
{ HDA_CODEC_VT1702_3, 0x0000, L"VIA VT1702_3" },
{ HDA_CODEC_VT1702_4, 0x0000, L"VIA VT1702_4" },
{ HDA_CODEC_VT1702_5, 0x0000, L"VIA VT1702_5" },
{ HDA_CODEC_VT1702_6, 0x0000, L"VIA VT1702_6" },
{ HDA_CODEC_VT1702_7, 0x0000, L"VIA VT1702_7" },
{ HDA_CODEC_VT1716S_0, 0x0000, L"VIA VT1716S_0" },
{ HDA_CODEC_VT1716S_1, 0x0000, L"VIA VT1716S_1" },
{ HDA_CODEC_VT1718S_0, 0x0000, L"VIA VT1718S_0" },
{ HDA_CODEC_VT1718S_1, 0x0000, L"VIA VT1718S_1" },
{ HDA_CODEC_VT1802_0, 0x0000, L"VIA VT1802_0" },
{ HDA_CODEC_VT1802_1, 0x0000, L"VIA VT1802_1" },
{ HDA_CODEC_VT1812, 0x0000, L"VIA VT1812" },
{ HDA_CODEC_VT1818S, 0x0000, L"VIA VT1818S" },
{ HDA_CODEC_VT1828S, 0x0000, L"VIA VT1828S" },
{ HDA_CODEC_VT2002P_0, 0x0000, L"VIA VT2002P_0" },
{ HDA_CODEC_VT2002P_1, 0x0000, L"VIA VT2002P_1" },
{ HDA_CODEC_VT2020, 0x0000, L"VIA VT2020" },
{ HDA_CODEC_VTXXXX, 0x0000, L"VIA (Unknown)" },
// End.
{ 0, 0x0000, NULL }
};