Merge pull request #41 from Florin9doi/p6

Share a single list of audio devices between Clover and audioDxe
This commit is contained in:
Sergey 2019-11-26 16:59:07 +03:00 committed by GitHub
commit 4afea5b83f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 490 additions and 1662 deletions

View File

@ -64,26 +64,4 @@
extern EFI_DRIVER_BINDING_PROTOCOL gHdaControllerDriverBinding;
extern EFI_DRIVER_BINDING_PROTOCOL gHdaCodecDriverBinding;
#define GET_PCI_VENDOR_ID(a) (a & 0xFFFF)
#define GET_PCI_DEVICE_ID(a) ((a >> 16) & 0xFFFF)
#define GET_PCI_GENERIC_ID(a) ((0xFFFF << 16) | a)
#define GET_CODEC_VENDOR_ID(a) ((a >> 16) & 0xFFFF)
#define GET_CODEC_DEVICE_ID(a) (a & 0xFFFF)
#define GET_CODEC_GENERIC_ID(a) (a | 0xFFFF)
// Controller name strings.
typedef struct {
UINT32 Id;
CHAR16 *Name;
} HDA_CONTROLLER_LIST_ENTRY;
extern HDA_CONTROLLER_LIST_ENTRY gHdaControllerList[];
// Codec name strings.
typedef struct {
UINT32 Id;
UINT16 Rev;
CHAR16 *Name;
} HDA_CODEC_LIST_ENTRY;
extern HDA_CODEC_LIST_ENTRY gHdaCodecList[];
#endif

View File

@ -240,7 +240,7 @@ HdaCodecProbeWidget(
if (EFI_ERROR(Status))
return Status;
HdaWidget->DefaultEapd = (UINT8)Response;
HdaWidget->DefaultEapd &= 0x7;
HdaWidget->DefaultEapd &= 0x7;
HdaWidget->DefaultEapd |= HDA_EAPD_BTL_ENABLE_EAPD;
//DEBUG((DEBUG_INFO, "Widget @ 0x%X EAPD: 0x%X\n", HdaWidget->NodeId, HdaWidget->DefaultEapd));
}

View File

@ -22,393 +22,3 @@
* 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_TU106, L"NVIDIA TU106 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 }
};

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,6 @@
*/
#include "Platform.h"
#include "hda.h"
#ifndef DEBUG_HDA
#ifndef DEBUG_ALL
@ -43,146 +42,6 @@
#define HDA_IRI 0x64 // Immediate Response Input Interface
#define HDA_ICS 0x68 // Immediate Command Status
/* Structures */
static hda_controller_devices know_hda_controller[] = {
//8086 Intel Corporation
{ HDA_INTEL_OAK, "Oaktrail" /*, 0, 0 */ },
{ HDA_INTEL_BAY, "BayTrail" /*, 0, 0 */ },
{ HDA_INTEL_HSW1, "Haswell" /*, 0, 0 */ },
{ HDA_INTEL_HSW2, "Haswell" /*, 0, 0 */ },
{ HDA_INTEL_HSW3, "Haswell" /*, 0, 0 */ },
{ HDA_INTEL_BDW, "Broadwell" /*, 0, 0 */ },
{ HDA_INTEL_BROXTON_T, "Broxton-T" /*, 0, 0 */ },
{ HDA_INTEL_CPT, "Cougar Point" /*, 0, 0 */ },
{ HDA_INTEL_PATSBURG, "Patsburg" /*, 0, 0 */ },
{ HDA_INTEL_PPT1, "Panther Point" /*, 0, 0 */ },
{ HDA_INTEL_BRASWELL, "Braswell" /*, 0, 0 */ },
{ HDA_INTEL_82801F, "82801F" /*, 0, 0 */ },
{ HDA_INTEL_63XXESB, "631x/632xESB" /*, 0, 0 */ },
{ HDA_INTEL_82801G, "82801G" /*, 0, 0 */ },
{ HDA_INTEL_82801H, "82801H" /*, 0, 0 */ },
{ HDA_INTEL_82801I, "82801I" /*, 0, 0 */ },
{ HDA_INTEL_ICH9, "ICH9" /*, 0, 0 */ },
{ HDA_INTEL_82801JI, "82801JI" /*, 0, 0 */ },
{ HDA_INTEL_82801JD, "82801JD" /*, 0, 0 */ },
{ HDA_INTEL_PCH, "5 Series/3400 Series" /*, 0, 0 */ },
{ HDA_INTEL_PCH2, "5 Series/3400 Series" /*, 0, 0 */ },
{ HDA_INTEL_BROXTON_P, "Apollolake" /*, 0, 0 */ }, // Broxton-P
{ HDA_INTEL_SCH, "SCH" /*, 0, 0 */ },
{ HDA_INTEL_LPT1, "Lynx Point" /*, 0, 0 */ },
{ HDA_INTEL_LPT2, "Lynx Point" /*, 0, 0 */ },
{ HDA_INTEL_WCPT, "Wildcat Point" /*, 0, 0 */ },
{ HDA_INTEL_WELLS1, "Wellsburg" /*, 0, 0 */ },
{ HDA_INTEL_WELLS2, "Wellsburg" /*, 0, 0 */ },
{ HDA_INTEL_WCPTLP, "Wildcat Point-LP" /*, 0, 0 */ },
{ HDA_INTEL_LPTLP1, "Lynx Point-LP" /*, 0, 0 */ },
{ HDA_INTEL_LPTLP2, "Lynx Point-LP" /*, 0, 0 */ },
{ HDA_INTEL_SRSPLP, "Sunrise Point-LP" /*, 0, 0 */ },
{ HDA_INTEL_KABYLAKE_LP, "Kabylake-LP" /*, 0, 0 */ }, // Kabylake-LP
{ HDA_INTEL_SRSP, "Sunrise Point" /*, 0, 0 */ },
{ HDA_INTEL_KABYLAKE, "Kabylake" /*, 0, 0 */ }, // Kabylake
{ HDA_INTEL_LEWISBURG1, "Lewisburg" /*, 0, 0 */ }, // Lewisburg
{ HDA_INTEL_LEWISBURG2, "Lewisburg" /*, 0, 0 */ }, // Lewisburg
{ HDA_INTEL_UNPT, "Union Point" /*, 0, 0 */ }, // Kabylake-H
//10de NVIDIA Corporation
#if 0
{ HDA_NVIDIA_MCP51, "MCP51" /*, 0, HDAC_QUIRK_MSI */ },
{ HDA_NVIDIA_MCP55, "MCP55" /*, 0, HDAC_QUIRK_MSI */ },
{ HDA_NVIDIA_MCP61_1, "MCP61" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP61_2, "MCP61" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP65_1, "MCP65" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP65_2, "MCP65" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP67_1, "MCP67" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP67_2, "MCP67" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP73_1, "MCP73" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP73_2, "MCP73" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP78_1, "MCP78" /*, 0, HDAC_QUIRK_64BIT */ },
{ HDA_NVIDIA_MCP78_2, "MCP78" /*, 0, HDAC_QUIRK_64BIT */ },
{ HDA_NVIDIA_MCP78_3, "MCP78" /*, 0, HDAC_QUIRK_64BIT */ },
{ HDA_NVIDIA_MCP78_4, "MCP78" /*, 0, HDAC_QUIRK_64BIT */ },
#endif
{ HDA_NVIDIA_MCP79_1, "MCP79" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP79_2, "MCP79" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP79_3, "MCP79" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP79_4, "MCP79" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP89_1, "MCP89" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP89_2, "MCP89" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP89_3, "MCP89" /*, 0, 0 */ },
{ HDA_NVIDIA_MCP89_4, "MCP89" /*, 0, 0 */ },
{ HDA_NVIDIA_GT216, "GT216" /*, 0, HDAC_QUIRK_MSI */ },
{ HDA_NVIDIA_GT218, "GT218" /*, 0, HDAC_QUIRK_MSI */ },
{ HDA_NVIDIA_GT215, "GT215" /*, 0, HDAC_QUIRK_MSI */ },
{ HDA_NVIDIA_GF100, "GF100" /*, 0, HDAC_QUIRK_MSI */ },
{ HDA_NVIDIA_GF104, "GF104" /*, 0, HDAC_QUIRK_MSI */ },
{ HDA_NVIDIA_GF106, "GF106" /*, 0, HDAC_QUIRK_MSI */ },
{ HDA_NVIDIA_GF108, "GF108" /*, 0, HDAC_QUIRK_MSI */ },
{ HDA_NVIDIA_GF116, "GF116" /*, 0, HDAC_QUIRK_MSI */ },
{ HDA_NVIDIA_GF119, "GF119" /*, 0, 0 */ },
{ HDA_NVIDIA_GF110, "GF110" /*, 0, HDAC_QUIRK_MSI */ },
{ HDA_NVIDIA_GF114, "GF114" /*, 0, HDAC_QUIRK_MSI */ },
{ HDA_NVIDIA_GK110, "GK110" /*, 0, ? */ },
{ HDA_NVIDIA_GK106, "GK106" /*, 0, ? */ },
{ HDA_NVIDIA_GK107, "GK107" /*, 0, ? */ },
{ HDA_NVIDIA_GK104, "GK104" /*, 0, ? */ },
{ HDA_NVIDIA_GK208, "GK208" /*, 0, ? */ },
{ HDA_NVIDIA_GP104, "GP104" /*, 0, ? */ },
{ HDA_NVIDIA_GM204, "GM204" /*, 0, ? */ },
{ HDA_NVIDIA_TU106, "TU106" /*, 0, ? */ },
//1002 Advanced Micro Devices [AMD] nee ATI Technologies Inc
{ HDA_ATI_SB450, "SB4x0" /*, 0, 0 */ },
{ HDA_ATI_SB600, "SB600" /*, 0, 0 */ },
{ HDA_ATI_RS600, "RS600" /*, 0, 0 */ },
{ HDA_ATI_HUDSON, "Hudson" /*, 0, 0 */ },
{ HDA_ATI_RS690, "RS690" /*, 0, 0 */ },
{ HDA_ATI_RS780, "RS780" /*, 0, 0 */ },
{ HDA_ATI_RS880, "RS880" /*, 0, 0 */ },
{ HDA_ATI_TRINITY, "Trinity" /*, 0, ? */ },
{ HDA_ATI_R600, "R600" /*, 0, 0 */ },
{ HDA_ATI_RV610, "RV610" /*, 0, 0 */ },
{ HDA_ATI_RV620, "RV620" /*, 0, 0 */ },
{ HDA_ATI_RV630, "RV630" /*, 0, 0 */ },
{ HDA_ATI_RV635, "RV635" /*, 0, 0 */ },
{ HDA_ATI_RV710, "RV710" /*, 0, 0 */ },
{ HDA_ATI_RV730, "RV730" /*, 0, 0 */ },
{ HDA_ATI_RV740, "RV740" /*, 0, 0 */ },
{ HDA_ATI_RV770, "RV770" /*, 0, 0 */ },
{ HDA_ATI_RV810, "RV810" /*, 0, 0 */ },
{ HDA_ATI_RV830, "RV830" /*, 0, 0 */ },
{ HDA_ATI_RV840, "RV840" /*, 0, 0 */ },
{ HDA_ATI_RV870, "RV870" /*, 0, 0 */ },
{ HDA_ATI_RV910, "RV910" /*, 0, 0 */ },
{ HDA_ATI_RV930, "RV930" /*, 0, 0 */ },
{ HDA_ATI_RV940, "RV940" /*, 0, 0 */ },
{ HDA_ATI_RV970, "RV970" /*, 0, 0 */ },
{ HDA_ATI_R1000, "R1000" /*, 0, 0 */ }, // HDMi
{ HDA_ATI_SI, "SI" /*, 0, 0 */ },
{ HDA_ATI_VERDE, "Cape Verde" /*, 0, ? */ }, // HDMi
//17f3 RDC Semiconductor, Inc.
{ HDA_RDC_M3010, "M3010" /*, 0, 0 */ },
//1106 VIA Technologies, Inc.
{ HDA_VIA_VT82XX, "VT8251/8237A" /*, 0, 0 */ },
//1039 Silicon Integrated Systems [SiS]
{ HDA_SIS_966, "966" /*, 0, 0 */ },
//10b9 ULi Electronics Inc.(Split off ALi Corporation in 2003)
{ HDA_ULI_M5461, "M5461" /*, 0, 0 */ },
/* Unknown */
{ HDA_INTEL_ALL, "Unknown Intel device" /*, 0, 0 */ },
{ HDA_NVIDIA_ALL, "Unknown NVIDIA device" /*, 0, 0 */ },
{ HDA_ATI_ALL, "Unknown ATI device" /*, 0, 0 */ },
{ HDA_VIA_ALL, "Unknown VIA device" /*, 0, 0 */ },
{ HDA_SIS_ALL, "Unknown SiS device" /*, 0, 0 */ },
{ HDA_ULI_ALL, "Unknown ULI device" /*, 0, 0 */ },
};
#define HDAC_DEVICES_LEN (sizeof(know_hda_controller) / sizeof(know_hda_controller[0]))
/* CODECs */
/*
* ErmaC: There's definitely a lot of different versions of the same audio codec variant out there...
@ -209,353 +68,6 @@ static hda_controller_devices know_hda_controller[] = {
* Revision Id: 0x100100
* --------------------------------
*/
#if 0
static hdacc_codecs know_codecs[] = {
{ HDA_CODEC_CS4206, 0, "CS4206" },
{ HDA_CODEC_CS4207, 0, "CS4207" },
{ HDA_CODEC_CS4208, 0, "CS4208" },
{ HDA_CODEC_CS4210, 0, "CS4210" },
{ HDA_CODEC_CS4213, 0, "CS4213" },
{ HDA_CODEC_ALC221, 0, "ALC221" },
{ HDA_CODEC_ALC231, 0, "ALC231" },
{ HDA_CODEC_ALC233, 0, "ALC233" },
{ HDA_CODEC_ALC233, 0x0003, "ALC3236" },
{ HDA_CODEC_ALC235, 0, "ALC235" },
{ HDA_CODEC_ALC255, 0, "ALC255" },
{ HDA_CODEC_ALC256, 0, "ALC256" },
{ HDA_CODEC_ALC260, 0, "ALC260" },
// { HDA_CODEC_ALC262, 0x0100, "ALC262" }, // Revision Id: 0x100100
{ HDA_CODEC_ALC262, 0, "ALC262" },
{ HDA_CODEC_ALC267, 0, "ALC267" },
{ HDA_CODEC_ALC268, 0, "ALC268" },
{ HDA_CODEC_ALC269, 0, "ALC269" },
{ HDA_CODEC_ALC270, 0, "ALC270" },
{ HDA_CODEC_ALC272, 0, "ALC272" },
{ HDA_CODEC_ALC273, 0, "ALC273" },
{ HDA_CODEC_ALC275, 0, "ALC275" },
{ HDA_CODEC_ALC276, 0, "ALC276" },
{ HDA_CODEC_ALC280, 0, "ALC280" },
{ HDA_CODEC_ALC282, 0, "ALC282" },
{ HDA_CODEC_ALC283, 0, "ALC283" },
{ HDA_CODEC_ALC284, 0, "ALC284" },
{ HDA_CODEC_ALC285, 0, "ALC285" },
{ HDA_CODEC_ALC286, 0, "ALC286" },
{ HDA_CODEC_ALC288, 0, "ALC288" },
{ HDA_CODEC_ALC290, 0, "ALC290" },
{ HDA_CODEC_ALC292, 0, "ALC292" },
{ HDA_CODEC_ALC292, 0x0001, "ALC3232" },
{ HDA_CODEC_ALC293, 0, "ALC293" },
{ HDA_CODEC_ALC298, 0, "ALC298" },
{ HDA_CODEC_ALC660, 0, "ALC660-VD" },
{ HDA_CODEC_ALC662, 0, "ALC662" },
{ HDA_CODEC_ALC662, 0x0101, "ALC662 rev1" },
{ HDA_CODEC_ALC662, 0x0002, "ALC662 rev2" },
{ HDA_CODEC_ALC662, 0x0300, "ALC662 rev3" },
{ HDA_CODEC_ALC663, 0, "ALC663" },
{ HDA_CODEC_ALC665, 0, "ALC665" },
{ HDA_CODEC_ALC667, 0, "ALC667" },
{ HDA_CODEC_ALC668, 0, "ALC668" },
{ HDA_CODEC_ALC670, 0, "ALC670" },
{ HDA_CODEC_ALC671, 0, "ALC671" },
{ HDA_CODEC_ALC680, 0, "ALC680" },
{ HDA_CODEC_ALC861, 0x0340, "ALC660" },
{ HDA_CODEC_ALC861, 0, "ALC861" },
{ HDA_CODEC_ALC861VD, 0, "ALC861-VD" },
{ HDA_CODEC_ALC867, 0, "ALC891" },
// { HDA_CODEC_ALC880, 0x0800, "ALC880" }, // Revision Id: 0x100800
{ HDA_CODEC_ALC880, 0, "ALC880" },
{ HDA_CODEC_ALC882, 0, "ALC882" },
{ HDA_CODEC_ALC883, 0, "ALC883" },
{ HDA_CODEC_ALC885, 0x0101, "ALC889A" }, // Revision Id: 0x100101
{ HDA_CODEC_ALC885, 0x0103, "ALC889A" }, // Revision Id: 0x100103
{ HDA_CODEC_ALC885, 0, "ALC885" },
{ HDA_CODEC_ALC886, 0, "ALC886" },
{ HDA_CODEC_ALC887, 0, "ALC887" },
{ HDA_CODEC_ALC888, 0x0101, "ALC1200" }, // Revision Id: 0x100101
{ HDA_CODEC_ALC888, 0, "ALC888" },
{ HDA_CODEC_ALC889, 0, "ALC889" },
{ HDA_CODEC_ALC892, 0, "ALC892" },
{ HDA_CODEC_ALC898, 0, "ALC898" },
// { HDA_CODEC_ALC899, 0, "ALC899" },
{ HDA_CODEC_ALC1150, 0, "ALC1150" },
{ HDA_CODEC_ALC1220A, 0, "ALCS1220A" },
{ HDA_CODEC_ALC1220, 0, "ALC1220" },
{ HDA_CODEC_AD1882, 0, "AD1882" },
{ HDA_CODEC_AD1882A, 0, "AD1882A" },
{ HDA_CODEC_AD1883, 0, "AD1883" },
{ HDA_CODEC_AD1884, 0, "AD1884" },
{ HDA_CODEC_AD1884A, 0, "AD1884A" },
{ HDA_CODEC_AD1981HD, 0, "AD1981HD" },
{ HDA_CODEC_AD1983, 0, "AD1983" },
{ HDA_CODEC_AD1984, 0, "AD1984" },
{ HDA_CODEC_AD1984A, 0, "AD1984A" },
{ HDA_CODEC_AD1984B, 0, "AD1984B" },
{ HDA_CODEC_AD1986A, 0, "AD1986A" },
{ HDA_CODEC_AD1987, 0, "AD1987" },
{ HDA_CODEC_AD1988, 0, "AD1988A" },
{ HDA_CODEC_AD1988B, 0, "AD1988B" },
{ HDA_CODEC_AD1989A, 0, "AD1989A" },
{ HDA_CODEC_AD1989B, 0x0200, "AD2000B" }, // Revision Id: 0x100200
{ HDA_CODEC_AD1989B, 0x0300, "AD2000B" }, // Revision Id: 0x100300
{ HDA_CODEC_AD1989B, 0, "AD1989B" },
{ HDA_CODEC_XFIEA, 0, "X-Fi Extreme A" },
{ HDA_CODEC_XFIED, 0, "X-Fi Extreme D" },
{ HDA_CODEC_CA0132, 0, "CA0132" },
{ HDA_CODEC_SB0880, 0, "SB0880 X-Fi" },
{ HDA_CODEC_CMI9880, 0, "CMI9880" },
{ HDA_CODEC_CMI98802, 0, "CMI9880" },
{ HDA_CODEC_CXD9872RDK, 0, "CXD9872RD/K" },
{ HDA_CODEC_CXD9872AKD, 0, "CXD9872AKD" },
{ HDA_CODEC_STAC9200D, 0, "STAC9200D" },
{ HDA_CODEC_STAC9204X, 0, "STAC9204X" },
{ HDA_CODEC_STAC9204D, 0, "STAC9204D" },
{ HDA_CODEC_STAC9205X, 0, "STAC9205X" },
{ HDA_CODEC_STAC9205D, 0, "STAC9205D" },
{ HDA_CODEC_STAC9220, 0, "STAC9220" },
{ HDA_CODEC_STAC9220_A1, 0, "STAC9220_A1" },
{ HDA_CODEC_STAC9220_A2, 0, "STAC9220_A2" },
{ HDA_CODEC_STAC9221, 0, "STAC9221" },
{ HDA_CODEC_STAC9221_A2, 0, "STAC9221_A2" },
{ HDA_CODEC_STAC9221D, 0, "STAC9221D" },
{ HDA_CODEC_STAC922XD, 0, "STAC9220D/9223D" },
{ HDA_CODEC_STAC9227X, 0, "STAC9227X" },
{ HDA_CODEC_STAC9227D, 0, "STAC9227D" },
{ HDA_CODEC_STAC9228X, 0, "STAC9228X" },
{ HDA_CODEC_STAC9228D, 0, "STAC9228D" },
{ HDA_CODEC_STAC9229X, 0, "STAC9229X" },
{ HDA_CODEC_STAC9229D, 0, "STAC9229D" },
{ HDA_CODEC_STAC9230X, 0, "STAC9230X" },
{ HDA_CODEC_STAC9230D, 0, "STAC9230D" },
{ HDA_CODEC_STAC9250, 0, "STAC9250" },
{ HDA_CODEC_STAC9250D, 0, "STAC9250D" },
{ HDA_CODEC_STAC9251, 0, "STAC9251" },
{ HDA_CODEC_STAC9250D_1, 0, "STAC9250D" },
{ HDA_CODEC_STAC9255, 0, "STAC9255" },
{ HDA_CODEC_STAC9255D, 0, "STAC9255D" },
{ HDA_CODEC_STAC9254, 0, "STAC9254" },
{ HDA_CODEC_STAC9254D, 0, "STAC9254D" },
{ HDA_CODEC_STAC9271X, 0, "STAC9271X" },
{ HDA_CODEC_STAC9271D, 0, "STAC9271D" },
{ HDA_CODEC_STAC9272X, 0, "STAC9272X" },
{ HDA_CODEC_STAC9272D, 0, "STAC9272D" },
{ HDA_CODEC_STAC9273X, 0, "STAC9273X" },
{ HDA_CODEC_STAC9273D, 0, "STAC9273D" },
{ HDA_CODEC_STAC9274, 0, "STAC9274" },
{ HDA_CODEC_STAC9274D, 0, "STAC9274D" },
{ HDA_CODEC_STAC9274X5NH, 0, "STAC9274X5NH" },
{ HDA_CODEC_STAC9274D5NH, 0, "STAC9274D5NH" },
{ HDA_CODEC_STAC9202, 0, "STAC9202" },
{ HDA_CODEC_STAC9202D, 0, "STAC9202D" },
{ HDA_CODEC_STAC9872AK, 0, "STAC9872AK" },
{ HDA_CODEC_IDT92HD005, 0, "92HD005" },
{ HDA_CODEC_IDT92HD005D, 0, "92HD005D" },
{ HDA_CODEC_IDT92HD206X, 0, "92HD206X" },
{ HDA_CODEC_IDT92HD206D, 0, "92HD206D" },
{ HDA_CODEC_IDT92HD66B1X5, 0, "92HD66B1X5" },
{ HDA_CODEC_IDT92HD66B2X5, 0, "92HD66B2X5" },
{ HDA_CODEC_IDT92HD66B3X5, 0, "92HD66B3X5" },
{ HDA_CODEC_IDT92HD66C1X5, 0, "92HD66C1X5" },
{ HDA_CODEC_IDT92HD66C2X5, 0, "92HD66C2X5" },
{ HDA_CODEC_IDT92HD66C3X5, 0, "92HD66C3X5" },
{ HDA_CODEC_IDT92HD66B1X3, 0, "92HD66B1X3" },
{ HDA_CODEC_IDT92HD66B2X3, 0, "92HD66B2X3" },
{ HDA_CODEC_IDT92HD66B3X3, 0, "92HD66B3X3" },
{ HDA_CODEC_IDT92HD66C1X3, 0, "92HD66C1X3" },
{ HDA_CODEC_IDT92HD66C2X3, 0, "92HD66C2X3" },
{ HDA_CODEC_IDT92HD66C3_65, 0, "92HD66C3_65" },
{ HDA_CODEC_IDT92HD700X, 0, "92HD700X" },
{ HDA_CODEC_IDT92HD700D, 0, "92HD700D" },
{ HDA_CODEC_IDT92HD71B5, 0, "92HD71B5" },
{ HDA_CODEC_IDT92HD71B5_2, 0, "92HD71B5" },
{ HDA_CODEC_IDT92HD71B6, 0, "92HD71B6" },
{ HDA_CODEC_IDT92HD71B6_2, 0, "92HD71B6" },
{ HDA_CODEC_IDT92HD71B7, 0, "92HD71B7" },
{ HDA_CODEC_IDT92HD71B7_2, 0, "92HD71B7" },
{ HDA_CODEC_IDT92HD71B8, 0, "92HD71B8" },
{ HDA_CODEC_IDT92HD71B8_2, 0, "92HD71B8" },
{ HDA_CODEC_IDT92HD73C1, 0, "92HD73C1" },
{ HDA_CODEC_IDT92HD73D1, 0, "92HD73D1" },
{ HDA_CODEC_IDT92HD73E1, 0, "92HD73E1" },
{ HDA_CODEC_IDT92HD95, 0, "92HD95" },
{ HDA_CODEC_IDT92HD75B3, 0, "92HD75B3" },
{ HDA_CODEC_IDT92HD88B3, 0, "92HD88B3" },
{ HDA_CODEC_IDT92HD88B1, 0, "92HD88B1" },
{ HDA_CODEC_IDT92HD88B2, 0, "92HD88B2" },
{ HDA_CODEC_IDT92HD88B4, 0, "92HD88B4" },
{ HDA_CODEC_IDT92HD75BX, 0, "92HD75BX" },
{ HDA_CODEC_IDT92HD81B1C, 0, "92HD81B1C" },
{ HDA_CODEC_IDT92HD81B1X, 0, "92HD81B1X" },
{ HDA_CODEC_IDT92HD83C1C, 0, "92HD83C1C" },
{ HDA_CODEC_IDT92HD83C1X, 0, "92HD83C1X" },
{ HDA_CODEC_IDT92HD87B1_3, 0, "92HD87B1/3" },
{ HDA_CODEC_IDT92HD87B2_4, 0, "92HD87B2/4" },
{ HDA_CODEC_IDT92HD89C3, 0, "92HD89C3" },
{ HDA_CODEC_IDT92HD89C2, 0, "92HD89C2" },
{ HDA_CODEC_IDT92HD89C1, 0, "92HD89C1" },
{ HDA_CODEC_IDT92HD89B3, 0, "92HD89B3" },
{ HDA_CODEC_IDT92HD89B2, 0, "92HD89B2" },
{ HDA_CODEC_IDT92HD89B1, 0, "92HD89B1" },
{ HDA_CODEC_IDT92HD89E3, 0, "92HD89E3" },
{ HDA_CODEC_IDT92HD89E2, 0, "92HD89E2" },
{ HDA_CODEC_IDT92HD89E1, 0, "92HD89E1" },
{ HDA_CODEC_IDT92HD89D3, 0, "92HD89D3" },
{ HDA_CODEC_IDT92HD89D2, 0, "92HD89D2" },
{ HDA_CODEC_IDT92HD89D1, 0, "92HD89D1" },
{ HDA_CODEC_IDT92HD89F3, 0, "92HD89F3" },
{ HDA_CODEC_IDT92HD89F2, 0, "92HD89F2" },
{ HDA_CODEC_IDT92HD89F1, 0, "92HD89F1" },
{ HDA_CODEC_IDT92HD90BXX, 0, "92HD90BXX" },
{ HDA_CODEC_IDT92HD91BXX, 0, "92HD91BXX" },
{ HDA_CODEC_IDT92HD93BXX, 0, "92HD93BXX" },
{ HDA_CODEC_IDT92HD98BXX, 0, "92HD98BXX" },
{ HDA_CODEC_IDT92HD99BXX, 0, "92HD99BXX" },
{ HDA_CODEC_CX20549, 0, "CX20549 (Venice)" },
{ HDA_CODEC_CX20551, 0, "CX20551 (Waikiki)" },
{ HDA_CODEC_CX20561, 0, "CX20561 (Hermosa)" },
{ HDA_CODEC_CX20582, 0, "CX20582 (Pebble)" },
{ HDA_CODEC_CX20583, 0, "CX20583 (Pebble HSF)" },
{ HDA_CODEC_CX20584, 0, "CX20584" },
{ HDA_CODEC_CX20585, 0, "CX20585" },
{ HDA_CODEC_CX20588, 0, "CX20588" },
{ HDA_CODEC_CX20590, 0, "CX20590" },
{ HDA_CODEC_CX20631, 0, "CX20631" },
{ HDA_CODEC_CX20632, 0, "CX20632" },
{ HDA_CODEC_CX20641, 0, "CX20641" },
{ HDA_CODEC_CX20642, 0, "CX20642" },
{ HDA_CODEC_CX20651, 0, "CX20651" },
{ HDA_CODEC_CX20652, 0, "CX20652" },
{ HDA_CODEC_CX20664, 0, "CX20664" },
{ HDA_CODEC_CX20665, 0, "CX20665" },
{ HDA_CODEC_CX20751, 0, "CX20751/2" },
{ HDA_CODEC_CX20751_2, 0, "CX20751/2" },
{ HDA_CODEC_CX20751_4, 0, "CX20753/4" },
{ HDA_CODEC_CX20755, 0, "CX20755" },
{ HDA_CODEC_CX20756, 0, "CX20756" },
{ HDA_CODEC_CX20757, 0, "CX20757" },
{ HDA_CODEC_CX20952, 0, "CX20952" },
{ HDA_CODEC_VT1708_8, 0, "VT1708_8" },
{ HDA_CODEC_VT1708_9, 0, "VT1708_9" },
{ HDA_CODEC_VT1708_A, 0, "VT1708_A" },
{ HDA_CODEC_VT1708_B, 0, "VT1708_B" },
{ HDA_CODEC_VT1709_0, 0, "VT1709_0" },
{ HDA_CODEC_VT1709_1, 0, "VT1709_1" },
{ HDA_CODEC_VT1709_2, 0, "VT1709_2" },
{ HDA_CODEC_VT1709_3, 0, "VT1709_3" },
{ HDA_CODEC_VT1709_4, 0, "VT1709_4" },
{ HDA_CODEC_VT1709_5, 0, "VT1709_5" },
{ HDA_CODEC_VT1709_6, 0, "VT1709_6" },
{ HDA_CODEC_VT1709_7, 0, "VT1709_7" },
{ HDA_CODEC_VT1708B_0, 0, "VT1708B_0" },
{ HDA_CODEC_VT1708B_1, 0, "VT1708B_1" },
{ HDA_CODEC_VT1708B_2, 0, "VT1708B_2" },
{ HDA_CODEC_VT1708B_3, 0, "VT1708B_3" },
{ HDA_CODEC_VT1708B_4, 0, "VT1708B_4" },
{ HDA_CODEC_VT1708B_5, 0, "VT1708B_5" },
{ HDA_CODEC_VT1708B_6, 0, "VT1708B_6" },
{ HDA_CODEC_VT1708B_7, 0, "VT1708B_7" },
{ HDA_CODEC_VT1708S_0, 0, "VT1708S_0" },
{ HDA_CODEC_VT1708S_1, 0, "VT1708S_1" },
{ HDA_CODEC_VT1708S_2, 0, "VT1708S_2" },
{ HDA_CODEC_VT1708S_3, 0, "VT1708S_3" },
{ HDA_CODEC_VT1708S_4, 0, "VT1708S_4" },
{ HDA_CODEC_VT1708S_5, 0, "VT1708S_5" },
{ HDA_CODEC_VT1708S_6, 0, "VT1708S_6" },
{ HDA_CODEC_VT1708S_7, 0, "VT1708S_7" },
{ HDA_CODEC_VT1702_0, 0, "VT1702_0" },
{ HDA_CODEC_VT1702_1, 0, "VT1702_1" },
{ HDA_CODEC_VT1702_2, 0, "VT1702_2" },
{ HDA_CODEC_VT1702_3, 0, "VT1702_3" },
{ HDA_CODEC_VT1702_4, 0, "VT1702_4" },
{ HDA_CODEC_VT1702_5, 0, "VT1702_5" },
{ HDA_CODEC_VT1702_6, 0, "VT1702_6" },
{ HDA_CODEC_VT1702_7, 0, "VT1702_7" },
{ HDA_CODEC_VT1716S_0, 0, "VT1716S_0" },
{ HDA_CODEC_VT1716S_1, 0, "VT1716S_1" },
{ HDA_CODEC_VT1718S_0, 0, "VT1718S_0" },
{ HDA_CODEC_VT1718S_1, 0, "VT1718S_1" },
{ HDA_CODEC_VT1802_0, 0, "VT1802_0" },
{ HDA_CODEC_VT1802_1, 0, "VT1802_1" },
{ HDA_CODEC_VT1812, 0, "VT1812" },
{ HDA_CODEC_VT1818S, 0, "VT1818S" },
{ HDA_CODEC_VT1828S, 0, "VT1828S" },
{ HDA_CODEC_VT2002P_0, 0, "VT2002P_0" },
{ HDA_CODEC_VT2002P_1, 0, "VT2002P_1" },
{ HDA_CODEC_VT2020, 0, "VT2020" },
{ HDA_CODEC_ATIRS600_1, 0, "RS600" },
{ HDA_CODEC_ATIRS600_2, 0, "RS600" },
{ HDA_CODEC_ATIRS690, 0, "RS690/780" },
{ HDA_CODEC_ATIR6XX, 0, "R6xx" },
{ HDA_CODEC_NVIDIAMCP67, 0, "MCP67" },
{ HDA_CODEC_NVIDIAMCP73, 0, "MCP73" },
{ HDA_CODEC_NVIDIAMCP78, 0, "MCP78" },
{ HDA_CODEC_NVIDIAMCP78_2, 0, "MCP78" },
{ HDA_CODEC_NVIDIAMCP78_3, 0, "MCP78" },
{ HDA_CODEC_NVIDIAMCP78_4, 0, "MCP78" },
{ HDA_CODEC_NVIDIAMCP7A, 0, "MCP7A" },
{ HDA_CODEC_NVIDIAGT220, 0, "GT220" },
{ HDA_CODEC_NVIDIAGT21X, 0, "GT21x" },
{ HDA_CODEC_NVIDIAMCP89, 0, "MCP89" },
{ HDA_CODEC_NVIDIAGT240, 0, "GT240" },
{ HDA_CODEC_NVIDIAGTS450, 0, "GTS450" },
{ HDA_CODEC_NVIDIAGT440, 0, "GT440" }, // Revision Id: 0x100100
{ HDA_CODEC_NVIDIAGTX470, 0, "GT470" },
{ HDA_CODEC_NVIDIAGTX550, 0, "GTX550" },
{ HDA_CODEC_NVIDIAGTX570, 0, "GTX570" },
{ HDA_CODEC_NVIDIAGT610, 0, "GT610" },
{ HDA_CODEC_INTELIBEXPEAK2, 0, "Ibex Peak" },
{ HDA_CODEC_INTELBEARLAKE, 0, "Bearlake" },
{ HDA_CODEC_INTELCANTIGA, 0, "Cantiga" },
{ HDA_CODEC_INTELEAGLELAKE, 0, "Eaglelake" },
{ HDA_CODEC_INTELIBEXPEAK, 0, "Ibex Peak" },
{ HDA_CODEC_INTELCOUGARPOINT, 0, "Cougar Point" },
{ HDA_CODEC_INTELPANTHERPOINT, 0, "Panther Point" },
{ HDA_CODEC_INTELHASWELL, 0, "Haswell" },
{ HDA_CODEC_INTELBROADWELL, 0, "Broadwell" },
{ HDA_CODEC_INTELSKYLAKE, 0, "Skylake" },
{ HDA_CODEC_INTELBROXTON, 0, "Broxton" },
{ HDA_CODEC_INTELKABYLAKE, 0, "Kabylake" },
{ HDA_CODEC_INTELCDT, 0, "CedarTrail" },
{ HDA_CODEC_INTELVLV, 0, "Valleyview2" },
{ HDA_CODEC_INTELBSW, 0, "Braswell" },
{ HDA_CODEC_INTELCRESTLINE, 0, "Crestline" },
{ HDA_CODEC_SII1390, 0, "SiI1390 HDMi" },
{ HDA_CODEC_SII1392, 0, "SiI1392 HDMi" },
// Unknown CODECs
{ HDA_CODEC_ADXXXX, 0, "Analog Devices" },
{ HDA_CODEC_AGEREXXXX, 0, "LSI" },
{ HDA_CODEC_ALCXXXX, 0, "Realtek" },
{ HDA_CODEC_ATIXXXX, 0, "ATI" },
{ HDA_CODEC_CAXXXX, 0, "Creative" },
{ HDA_CODEC_CMIXXXX, 0, "CMedia" },
{ HDA_CODEC_CMIXXXX2, 0, "CMedia" },
{ HDA_CODEC_CSXXXX, 0, "Cirrus Logic" },
{ HDA_CODEC_CXXXXX, 0, "Conexant" },
{ HDA_CODEC_CHXXXX, 0, "Chrontel" },
{ HDA_CODEC_LGXXXX, 0, "LG" },
{ HDA_CODEC_WMXXXX, 0, "Wolfson Microelectronics" },
{ HDA_CODEC_QEMUXXXX, 0, "QEMU" },
{ HDA_CODEC_IDTXXXX, 0, "IDT" },
{ HDA_CODEC_INTELXXXX, 0, "Intel" },
{ HDA_CODEC_MOTOXXXX, 0, "Motorola" },
{ HDA_CODEC_NVIDIAXXXX, 0, "NVIDIA" },
{ HDA_CODEC_SIIXXXX, 0, "Silicon Image" },
{ HDA_CODEC_STACXXXX, 0, "Sigmatel" },
{ HDA_CODEC_VTXXXX, 0, "VIA" },
};
#define HDACC_CODECS_LEN (sizeof(know_codecs) / sizeof(know_codecs[0]))
#endif
/*****************
* Device Methods
@ -565,46 +77,24 @@ static hdacc_codecs know_codecs[] = {
CHAR8 *get_hda_controller_name(UINT16 controller_device_id, UINT16 controller_vendor_id)
{
static char desc[128];
CHAR8 *name_format = "Unknown HD Audio device %a";
UINT32 controller_model = ((controller_device_id << 16) | controller_vendor_id);
INT32 i;
/* Get format for vendor ID */
switch (controller_vendor_id)
{
case VEN_ATI_ID:
name_format = "ATI %a HDA Controller (HDMi/DP)"; break;
case VEN_INTEL_ID:
name_format = "Intel %a HDA Controller"; break;
case VEN_NVIDIA_ID:
name_format = "Nvidia %a HDA Controller (HDMi/DP)"; break;
case VEN_RDC_ID:
name_format = "RDC %a HDA Controller"; break;
case VEN_SIS_ID:
name_format = "SiS %a HDA Controller"; break;
case VEN_ULI_ID:
name_format = "ULI %a HDA Controller"; break;
case VEN_VIA_ID:
name_format = "VIA %a HDA Controller"; break;
default:
break;
HDA_CONTROLLER_LIST_ENTRY *controller;
for (controller = gHdaControllerList; controller->Id != 0; controller++) {
// Check ID and revision against array element.
if (controller->Id == controller_model) {
AsciiSPrint(desc, sizeof(desc), "%s", controller->Name);
return desc;
}
}
for (i = 0; i < HDAC_DEVICES_LEN; i++)
{
if (know_hda_controller[i].model == controller_model)
{
AsciiSPrint(desc, sizeof(desc), name_format, know_hda_controller[i].desc);
return desc;
}
// If match wasn't found, try again with a generic device ID.
for (controller = gHdaControllerList; controller->Id != 0; controller++) {
// Check ID and revision against array element.
if (controller->Id == GET_PCI_GENERIC_ID(controller_model)) {
AsciiSPrint(desc, sizeof(desc), "%s", controller->Name);
return desc;
}
}
/* Not in table */
@ -612,107 +102,6 @@ CHAR8 *get_hda_controller_name(UINT16 controller_device_id, UINT16 controller_ve
controller_vendor_id, controller_device_id);
return desc;
}
#if 0
/* get Codec name */
CHAR8 *get_hda_codec_name(UINT16 codec_vendor_id, UINT16 codec_device_id, UINT8 codec_revision_id, UINT8 codec_stepping_id)
{
static char desc[128];
CHAR8 *lName_format = NULL;
UINT32 lCodec_model = ((UINT32)(codec_vendor_id) << 16) + (codec_device_id);
UINT32 lCodec_rev = (((UINT16)(codec_revision_id) << 8) + codec_stepping_id);
INT32 i;
// Get format for vendor ID
switch ( codec_vendor_id ) // UINT16
{
case VEN_ATI_ID:
lName_format = "ATI %a"; break;
case VEN_CIRRUSLOGIC_ID:
lName_format = "Cirrus Logic %a"; break;
case VEN_MOTO_ID:
lName_format = "Motorola %a"; break;
case VEN_SII_ID:
lName_format = "Silicon Image %a"; break;
case VEN_NVIDIA_ID:
lName_format = "Nvidia %a"; break;
case VEN_REALTEK_ID:
lName_format = "Realtek %a"; break;
case VEN_CREATIVE_ID:
lName_format = "Creative %a"; break;
case VEN_VIA_ID:
lName_format = "VIA %a"; break;
case VEN_IDT_ID:
lName_format = "IDT %a"; break;
case VEN_AGERE_ID:
lName_format = "LSI %a"; break;
case VEN_ANALOGDEVICES_ID:
lName_format = "Analog Devices %a"; break;
case VEN_CMEDIA_ID:
case VEN_CMEDIA2_ID:
lName_format = "CMedia %a"; break;
case VEN_CONEXANT_ID:
lName_format = "Conexant %s"; break;
case VEN_CHRONTEL_ID:
lName_format = "Chrontel %a"; break;
case VEN_LG_ID:
lName_format = "LG %a"; break;
case VEN_WOLFSON_ID:
lName_format = "Wolfson Microelectronics %a"; break;
case VEN_QEMU_ID:
lName_format = "QEMU %a"; break;
case VEN_INTEL_ID:
lName_format = "Intel %a"; break;
case VEN_SIGMATEL_ID:
lName_format = "Sigmatel %a"; break;
default:
lName_format = UNKNOWN; break;
break;
}
for (i = 0; i < HDACC_CODECS_LEN; i++)
{
if ( know_codecs[i].id == lCodec_model )
{
if ( ( know_codecs[i].rev == 0x00000000 ) || ( know_codecs[i].rev == lCodec_rev ) )
{
AsciiSPrint(desc, sizeof(desc), lName_format, know_codecs[i].name);
return desc;
}
}
}
if ( AsciiStrStr(lName_format, "%a" ) != NULL )
{
// Dirty way to remove '%a' from the end of the lName_format
lName_format[AsciiStrLen(lName_format)-3] = '\0';
}
// Not in table
AsciiSPrint(desc, sizeof(desc), "unknown %a Codec", lName_format);
return desc;
}
#endif
#if 0
// executing HDA verb command using Immediate Command Input and Output Registers

View File

@ -22,35 +22,6 @@
#define __LIBSAIO_HDA_H
#include "device_inject.h"
//extern CHAR8 *gDeviceProperties;
//BOOLEAN setup_hda_devprop(pci_dt_t *hda_dev, CHAR8 *OSVersion);
struct hda_controller_devices;
typedef struct
{
UINT32 model;
CHAR8 *desc;
} hda_controller_devices;
struct hdacc_codecs;
typedef struct
{
UINT32 id;
UINT32 rev;
CHAR8 *name;
} hdacc_codecs;
#define UNKNOWN "Unknown "
/****************************************************************************
* Miscellanious defines
****************************************************************************/
/* Controller models */
#define HDA_MODEL_CONSTRUCT(vendor, model) (((UINT32)(model) << 16) | ((vendor##_VENDORID) & 0xffff))
#if 0 //already defined
/* Intel */