aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorKailang Yang <kailang@realtek.com>2013-01-10 04:25:48 -0500
committerTakashi Iwai <tiwai@suse.de>2013-01-10 04:27:46 -0500
commit065380f0880dd651eb405430745926dc4747b759 (patch)
tree6c57f38b0098d015aa90489acd720b49b77d64b0 /sound/pci
parente8e7da23c9add6f636bcc631aeb4461ffb99f77f (diff)
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>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_realtek.c24
1 files changed, 23 insertions, 1 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 71ae23dd7103..f5196277b6e9 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -5817,6 +5817,9 @@ enum {
5817 ALC269_TYPE_ALC269VB, 5817 ALC269_TYPE_ALC269VB,
5818 ALC269_TYPE_ALC269VC, 5818 ALC269_TYPE_ALC269VC,
5819 ALC269_TYPE_ALC269VD, 5819 ALC269_TYPE_ALC269VD,
5820 ALC269_TYPE_ALC280,
5821 ALC269_TYPE_ALC282,
5822 ALC269_TYPE_ALC284,
5820}; 5823};
5821 5824
5822/* 5825/*
@@ -5833,10 +5836,13 @@ static int alc269_parse_auto_config(struct hda_codec *codec)
5833 switch (spec->codec_variant) { 5836 switch (spec->codec_variant) {
5834 case ALC269_TYPE_ALC269VA: 5837 case ALC269_TYPE_ALC269VA:
5835 case ALC269_TYPE_ALC269VC: 5838 case ALC269_TYPE_ALC269VC:
5839 case ALC269_TYPE_ALC280:
5840 case ALC269_TYPE_ALC284:
5836 ssids = alc269va_ssids; 5841 ssids = alc269va_ssids;
5837 break; 5842 break;
5838 case ALC269_TYPE_ALC269VB: 5843 case ALC269_TYPE_ALC269VB:
5839 case ALC269_TYPE_ALC269VD: 5844 case ALC269_TYPE_ALC269VD:
5845 case ALC269_TYPE_ALC282:
5840 ssids = alc269_ssids; 5846 ssids = alc269_ssids;
5841 break; 5847 break;
5842 default: 5848 default:
@@ -6400,7 +6406,8 @@ static int patch_alc269(struct hda_codec *codec)
6400 6406
6401 alc_auto_parse_customize_define(codec); 6407 alc_auto_parse_customize_define(codec);
6402 6408
6403 if (codec->vendor_id == 0x10ec0269) { 6409 switch (codec->vendor_id) {
6410 case 0x10ec0269:
6404 spec->codec_variant = ALC269_TYPE_ALC269VA; 6411 spec->codec_variant = ALC269_TYPE_ALC269VA;
6405 switch (alc_get_coef0(codec) & 0x00f0) { 6412 switch (alc_get_coef0(codec) & 0x00f0) {
6406 case 0x0010: 6413 case 0x0010:
@@ -6425,6 +6432,20 @@ static int patch_alc269(struct hda_codec *codec)
6425 goto error; 6432 goto error;
6426 spec->init_hook = alc269_fill_coef; 6433 spec->init_hook = alc269_fill_coef;
6427 alc269_fill_coef(codec); 6434 alc269_fill_coef(codec);
6435 break;
6436
6437 case 0x10ec0280:
6438 case 0x10ec0290:
6439 spec->codec_variant = ALC269_TYPE_ALC280;
6440 break;
6441 case 0x10ec0282:
6442 case 0x10ec0283:
6443 spec->codec_variant = ALC269_TYPE_ALC282;
6444 break;
6445 case 0x10ec0284:
6446 case 0x10ec0292:
6447 spec->codec_variant = ALC269_TYPE_ALC284;
6448 break;
6428 } 6449 }
6429 6450
6430 /* automatic parse from the BIOS config */ 6451 /* automatic parse from the BIOS config */
@@ -7129,6 +7150,7 @@ static const struct hda_codec_preset snd_hda_preset_realtek[] = {
7129 { .id = 0x10ec0280, .name = "ALC280", .patch = patch_alc269 }, 7150 { .id = 0x10ec0280, .name = "ALC280", .patch = patch_alc269 },
7130 { .id = 0x10ec0282, .name = "ALC282", .patch = patch_alc269 }, 7151 { .id = 0x10ec0282, .name = "ALC282", .patch = patch_alc269 },
7131 { .id = 0x10ec0283, .name = "ALC283", .patch = patch_alc269 }, 7152 { .id = 0x10ec0283, .name = "ALC283", .patch = patch_alc269 },
7153 { .id = 0x10ec0284, .name = "ALC284", .patch = patch_alc269 },
7132 { .id = 0x10ec0290, .name = "ALC290", .patch = patch_alc269 }, 7154 { .id = 0x10ec0290, .name = "ALC290", .patch = patch_alc269 },
7133 { .id = 0x10ec0292, .name = "ALC292", .patch = patch_alc269 }, 7155 { .id = 0x10ec0292, .name = "ALC292", .patch = patch_alc269 },
7134 { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660", 7156 { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660",