aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKailang Yang <kailang@realtek.com>2017-10-20 03:06:34 -0400
committerTakashi Iwai <tiwai@suse.de>2017-10-20 04:49:18 -0400
commit736f20a7060857ff569e9e9586ae6c1204a73e07 (patch)
treee443d866ba5b6026e21ff085068c7ba0726b8c63
parenta91d66129fb9bcead12af3ed2008d6ddbf179509 (diff)
ALSA: hda/realtek - Add support for ALC236/ALC3204
Add support for ALC236/ALC3204. Add headset mode support for ALC236/ALC3204. 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.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 0ce71111b4e3..00fa80291c96 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -327,6 +327,7 @@ static void alc_fill_eapd_coef(struct hda_codec *codec)
327 case 0x10ec0215: 327 case 0x10ec0215:
328 case 0x10ec0225: 328 case 0x10ec0225:
329 case 0x10ec0233: 329 case 0x10ec0233:
330 case 0x10ec0236:
330 case 0x10ec0255: 331 case 0x10ec0255:
331 case 0x10ec0256: 332 case 0x10ec0256:
332 case 0x10ec0282: 333 case 0x10ec0282:
@@ -911,6 +912,7 @@ static struct alc_codec_rename_pci_table rename_pci_tbl[] = {
911 { 0x10ec0275, 0x1028, 0, "ALC3260" }, 912 { 0x10ec0275, 0x1028, 0, "ALC3260" },
912 { 0x10ec0899, 0x1028, 0, "ALC3861" }, 913 { 0x10ec0899, 0x1028, 0, "ALC3861" },
913 { 0x10ec0298, 0x1028, 0, "ALC3266" }, 914 { 0x10ec0298, 0x1028, 0, "ALC3266" },
915 { 0x10ec0236, 0x1028, 0, "ALC3204" },
914 { 0x10ec0256, 0x1028, 0, "ALC3246" }, 916 { 0x10ec0256, 0x1028, 0, "ALC3246" },
915 { 0x10ec0225, 0x1028, 0, "ALC3253" }, 917 { 0x10ec0225, 0x1028, 0, "ALC3253" },
916 { 0x10ec0295, 0x1028, 0, "ALC3254" }, 918 { 0x10ec0295, 0x1028, 0, "ALC3254" },
@@ -3930,6 +3932,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
3930 alc_process_coef_fw(codec, coef0255_1); 3932 alc_process_coef_fw(codec, coef0255_1);
3931 alc_process_coef_fw(codec, coef0255); 3933 alc_process_coef_fw(codec, coef0255);
3932 break; 3934 break;
3935 case 0x10ec0236:
3933 case 0x10ec0256: 3936 case 0x10ec0256:
3934 alc_process_coef_fw(codec, coef0256); 3937 alc_process_coef_fw(codec, coef0256);
3935 alc_process_coef_fw(codec, coef0255); 3938 alc_process_coef_fw(codec, coef0255);
@@ -4028,6 +4031,7 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin,
4028 }; 4031 };
4029 4032
4030 switch (codec->core.vendor_id) { 4033 switch (codec->core.vendor_id) {
4034 case 0x10ec0236:
4031 case 0x10ec0255: 4035 case 0x10ec0255:
4032 case 0x10ec0256: 4036 case 0x10ec0256:
4033 alc_write_coef_idx(codec, 0x45, 0xc489); 4037 alc_write_coef_idx(codec, 0x45, 0xc489);
@@ -4160,6 +4164,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
4160 alc_process_coef_fw(codec, alc225_pre_hsmode); 4164 alc_process_coef_fw(codec, alc225_pre_hsmode);
4161 alc_process_coef_fw(codec, coef0225); 4165 alc_process_coef_fw(codec, coef0225);
4162 break; 4166 break;
4167 case 0x10ec0236:
4163 case 0x10ec0255: 4168 case 0x10ec0255:
4164 case 0x10ec0256: 4169 case 0x10ec0256:
4165 alc_process_coef_fw(codec, coef0255); 4170 alc_process_coef_fw(codec, coef0255);
@@ -4256,6 +4261,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
4256 case 0x10ec0255: 4261 case 0x10ec0255:
4257 alc_process_coef_fw(codec, coef0255); 4262 alc_process_coef_fw(codec, coef0255);
4258 break; 4263 break;
4264 case 0x10ec0236:
4259 case 0x10ec0256: 4265 case 0x10ec0256:
4260 alc_process_coef_fw(codec, coef0256); 4266 alc_process_coef_fw(codec, coef0256);
4261 break; 4267 break;
@@ -4366,6 +4372,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
4366 case 0x10ec0255: 4372 case 0x10ec0255:
4367 alc_process_coef_fw(codec, coef0255); 4373 alc_process_coef_fw(codec, coef0255);
4368 break; 4374 break;
4375 case 0x10ec0236:
4369 case 0x10ec0256: 4376 case 0x10ec0256:
4370 alc_process_coef_fw(codec, coef0256); 4377 alc_process_coef_fw(codec, coef0256);
4371 break; 4378 break;
@@ -4451,6 +4458,7 @@ static void alc_determine_headset_type(struct hda_codec *codec)
4451 }; 4458 };
4452 4459
4453 switch (codec->core.vendor_id) { 4460 switch (codec->core.vendor_id) {
4461 case 0x10ec0236:
4454 case 0x10ec0255: 4462 case 0x10ec0255:
4455 case 0x10ec0256: 4463 case 0x10ec0256:
4456 alc_process_coef_fw(codec, coef0255); 4464 alc_process_coef_fw(codec, coef0255);
@@ -4705,6 +4713,7 @@ static void alc255_set_default_jack_type(struct hda_codec *codec)
4705 case 0x10ec0255: 4713 case 0x10ec0255:
4706 alc_process_coef_fw(codec, alc255fw); 4714 alc_process_coef_fw(codec, alc255fw);
4707 break; 4715 break;
4716 case 0x10ec0236:
4708 case 0x10ec0256: 4717 case 0x10ec0256:
4709 alc_process_coef_fw(codec, alc256fw); 4718 alc_process_coef_fw(codec, alc256fw);
4710 break; 4719 break;
@@ -6806,6 +6815,7 @@ static int patch_alc269(struct hda_codec *codec)
6806 case 0x10ec0255: 6815 case 0x10ec0255:
6807 spec->codec_variant = ALC269_TYPE_ALC255; 6816 spec->codec_variant = ALC269_TYPE_ALC255;
6808 break; 6817 break;
6818 case 0x10ec0236:
6809 case 0x10ec0256: 6819 case 0x10ec0256:
6810 spec->codec_variant = ALC269_TYPE_ALC256; 6820 spec->codec_variant = ALC269_TYPE_ALC256;
6811 spec->shutup = alc256_shutup; 6821 spec->shutup = alc256_shutup;
@@ -7857,6 +7867,7 @@ static const struct hda_device_id snd_hda_id_realtek[] = {
7857 HDA_CODEC_ENTRY(0x10ec0233, "ALC233", patch_alc269), 7867 HDA_CODEC_ENTRY(0x10ec0233, "ALC233", patch_alc269),
7858 HDA_CODEC_ENTRY(0x10ec0234, "ALC234", patch_alc269), 7868 HDA_CODEC_ENTRY(0x10ec0234, "ALC234", patch_alc269),
7859 HDA_CODEC_ENTRY(0x10ec0235, "ALC233", patch_alc269), 7869 HDA_CODEC_ENTRY(0x10ec0235, "ALC233", patch_alc269),
7870 HDA_CODEC_ENTRY(0x10ec0236, "ALC236", patch_alc269),
7860 HDA_CODEC_ENTRY(0x10ec0255, "ALC255", patch_alc269), 7871 HDA_CODEC_ENTRY(0x10ec0255, "ALC255", patch_alc269),
7861 HDA_CODEC_ENTRY(0x10ec0256, "ALC256", patch_alc269), 7872 HDA_CODEC_ENTRY(0x10ec0256, "ALC256", patch_alc269),
7862 HDA_CODEC_ENTRY(0x10ec0260, "ALC260", patch_alc260), 7873 HDA_CODEC_ENTRY(0x10ec0260, "ALC260", patch_alc260),