diff options
author | Kailang Yang <kailang@realtek.com> | 2017-10-20 03:06:34 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2017-10-20 04:49:18 -0400 |
commit | 736f20a7060857ff569e9e9586ae6c1204a73e07 (patch) | |
tree | e443d866ba5b6026e21ff085068c7ba0726b8c63 | |
parent | a91d66129fb9bcead12af3ed2008d6ddbf179509 (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.c | 11 |
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), |