ALSA: hda - Add support of new codec ALC284

Added the support for a new codec ALC284, which is compatible with
ALC269. Also add more codec variants to handle the SSID check
properly.

Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>

authored by Kailang Yang and committed by Takashi Iwai 065380f0 e8e7da23

+23 -1
+23 -1
sound/pci/hda/patch_realtek.c
··· 5817 ALC269_TYPE_ALC269VB, 5818 ALC269_TYPE_ALC269VC, 5819 ALC269_TYPE_ALC269VD, 5820 }; 5821 5822 /* ··· 5836 switch (spec->codec_variant) { 5837 case ALC269_TYPE_ALC269VA: 5838 case ALC269_TYPE_ALC269VC: 5839 ssids = alc269va_ssids; 5840 break; 5841 case ALC269_TYPE_ALC269VB: 5842 case ALC269_TYPE_ALC269VD: 5843 ssids = alc269_ssids; 5844 break; 5845 default: ··· 6406 6407 alc_auto_parse_customize_define(codec); 6408 6409 - if (codec->vendor_id == 0x10ec0269) { 6410 spec->codec_variant = ALC269_TYPE_ALC269VA; 6411 switch (alc_get_coef0(codec) & 0x00f0) { 6412 case 0x0010: ··· 6432 goto error; 6433 spec->init_hook = alc269_fill_coef; 6434 alc269_fill_coef(codec); 6435 } 6436 6437 /* automatic parse from the BIOS config */ ··· 7150 { .id = 0x10ec0280, .name = "ALC280", .patch = patch_alc269 }, 7151 { .id = 0x10ec0282, .name = "ALC282", .patch = patch_alc269 }, 7152 { .id = 0x10ec0283, .name = "ALC283", .patch = patch_alc269 }, 7153 { .id = 0x10ec0290, .name = "ALC290", .patch = patch_alc269 }, 7154 { .id = 0x10ec0292, .name = "ALC292", .patch = patch_alc269 }, 7155 { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660",
··· 5817 ALC269_TYPE_ALC269VB, 5818 ALC269_TYPE_ALC269VC, 5819 ALC269_TYPE_ALC269VD, 5820 + ALC269_TYPE_ALC280, 5821 + ALC269_TYPE_ALC282, 5822 + ALC269_TYPE_ALC284, 5823 }; 5824 5825 /* ··· 5833 switch (spec->codec_variant) { 5834 case ALC269_TYPE_ALC269VA: 5835 case ALC269_TYPE_ALC269VC: 5836 + case ALC269_TYPE_ALC280: 5837 + case ALC269_TYPE_ALC284: 5838 ssids = alc269va_ssids; 5839 break; 5840 case ALC269_TYPE_ALC269VB: 5841 case ALC269_TYPE_ALC269VD: 5842 + case ALC269_TYPE_ALC282: 5843 ssids = alc269_ssids; 5844 break; 5845 default: ··· 6400 6401 alc_auto_parse_customize_define(codec); 6402 6403 + switch (codec->vendor_id) { 6404 + case 0x10ec0269: 6405 spec->codec_variant = ALC269_TYPE_ALC269VA; 6406 switch (alc_get_coef0(codec) & 0x00f0) { 6407 case 0x0010: ··· 6425 goto error; 6426 spec->init_hook = alc269_fill_coef; 6427 alc269_fill_coef(codec); 6428 + break; 6429 + 6430 + case 0x10ec0280: 6431 + case 0x10ec0290: 6432 + spec->codec_variant = ALC269_TYPE_ALC280; 6433 + break; 6434 + case 0x10ec0282: 6435 + case 0x10ec0283: 6436 + spec->codec_variant = ALC269_TYPE_ALC282; 6437 + break; 6438 + case 0x10ec0284: 6439 + case 0x10ec0292: 6440 + spec->codec_variant = ALC269_TYPE_ALC284; 6441 + break; 6442 } 6443 6444 /* automatic parse from the BIOS config */ ··· 7129 { .id = 0x10ec0280, .name = "ALC280", .patch = patch_alc269 }, 7130 { .id = 0x10ec0282, .name = "ALC282", .patch = patch_alc269 }, 7131 { .id = 0x10ec0283, .name = "ALC283", .patch = patch_alc269 }, 7132 + { .id = 0x10ec0284, .name = "ALC284", .patch = patch_alc269 }, 7133 { .id = 0x10ec0290, .name = "ALC290", .patch = patch_alc269 }, 7134 { .id = 0x10ec0292, .name = "ALC292", .patch = patch_alc269 }, 7135 { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660",