summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKailang Yang <kailang@realtek.com>2016-05-30 04:44:20 -0400
committerTakashi Iwai <tiwai@suse.de>2016-05-30 08:11:24 -0400
commit6fbae35a3170c3e2b1b9d7b9cc943cbe48771362 (patch)
tree86dd98e329e086bd2a5325634bf064fe06cd48d2
parente69e7e03ed225abf3e1c43545aa3bcb68dc81d5f (diff)
ALSA: hda/realtek - Add support for new codecs ALC700/ALC701/ALC703
Support new codecs for ALC700/ALC701/ALC703. Signed-off-by: Kailang Yang <kailang@realtek.com> Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/hda/patch_realtek.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index daf4f64f2c24..7960316d767c 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -346,6 +346,9 @@ static void alc_fill_eapd_coef(struct hda_codec *codec)
346 case 0x10ec0234: 346 case 0x10ec0234:
347 case 0x10ec0274: 347 case 0x10ec0274:
348 case 0x10ec0294: 348 case 0x10ec0294:
349 case 0x10ec0700:
350 case 0x10ec0701:
351 case 0x10ec0703:
349 alc_update_coef_idx(codec, 0x10, 1<<15, 0); 352 alc_update_coef_idx(codec, 0x10, 1<<15, 0);
350 break; 353 break;
351 case 0x10ec0662: 354 case 0x10ec0662:
@@ -2655,6 +2658,7 @@ enum {
2655 ALC269_TYPE_ALC256, 2658 ALC269_TYPE_ALC256,
2656 ALC269_TYPE_ALC225, 2659 ALC269_TYPE_ALC225,
2657 ALC269_TYPE_ALC294, 2660 ALC269_TYPE_ALC294,
2661 ALC269_TYPE_ALC700,
2658}; 2662};
2659 2663
2660/* 2664/*
@@ -2686,6 +2690,7 @@ static int alc269_parse_auto_config(struct hda_codec *codec)
2686 case ALC269_TYPE_ALC256: 2690 case ALC269_TYPE_ALC256:
2687 case ALC269_TYPE_ALC225: 2691 case ALC269_TYPE_ALC225:
2688 case ALC269_TYPE_ALC294: 2692 case ALC269_TYPE_ALC294:
2693 case ALC269_TYPE_ALC700:
2689 ssids = alc269_ssids; 2694 ssids = alc269_ssids;
2690 break; 2695 break;
2691 default: 2696 default:
@@ -6095,6 +6100,14 @@ static int patch_alc269(struct hda_codec *codec)
6095 case 0x10ec0294: 6100 case 0x10ec0294:
6096 spec->codec_variant = ALC269_TYPE_ALC294; 6101 spec->codec_variant = ALC269_TYPE_ALC294;
6097 break; 6102 break;
6103 case 0x10ec0700:
6104 case 0x10ec0701:
6105 case 0x10ec0703:
6106 spec->codec_variant = ALC269_TYPE_ALC700;
6107 spec->gen.mixer_nid = 0; /* ALC700 does not have any loopback mixer path */
6108 alc_update_coef_idx(codec, 0x4a, 0, 1 << 15); /* Combo jack auto trigger control */
6109 break;
6110
6098 } 6111 }
6099 6112
6100 if (snd_hda_codec_read(codec, 0x51, 0, AC_VERB_PARAMETERS, 0) == 0x10ec5505) { 6113 if (snd_hda_codec_read(codec, 0x51, 0, AC_VERB_PARAMETERS, 0) == 0x10ec5505) {
@@ -7050,6 +7063,9 @@ static const struct hda_device_id snd_hda_id_realtek[] = {
7050 HDA_CODEC_ENTRY(0x10ec0670, "ALC670", patch_alc662), 7063 HDA_CODEC_ENTRY(0x10ec0670, "ALC670", patch_alc662),
7051 HDA_CODEC_ENTRY(0x10ec0671, "ALC671", patch_alc662), 7064 HDA_CODEC_ENTRY(0x10ec0671, "ALC671", patch_alc662),
7052 HDA_CODEC_ENTRY(0x10ec0680, "ALC680", patch_alc680), 7065 HDA_CODEC_ENTRY(0x10ec0680, "ALC680", patch_alc680),
7066 HDA_CODEC_ENTRY(0x10ec0700, "ALC700", patch_alc269),
7067 HDA_CODEC_ENTRY(0x10ec0701, "ALC701", patch_alc269),
7068 HDA_CODEC_ENTRY(0x10ec0703, "ALC703", patch_alc269),
7053 HDA_CODEC_ENTRY(0x10ec0867, "ALC891", patch_alc882), 7069 HDA_CODEC_ENTRY(0x10ec0867, "ALC891", patch_alc882),
7054 HDA_CODEC_ENTRY(0x10ec0880, "ALC880", patch_alc880), 7070 HDA_CODEC_ENTRY(0x10ec0880, "ALC880", patch_alc880),
7055 HDA_CODEC_ENTRY(0x10ec0882, "ALC882", patch_alc882), 7071 HDA_CODEC_ENTRY(0x10ec0882, "ALC882", patch_alc882),