aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-10-26 02:02:42 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-10-26 02:02:42 -0400
commitecda3d95ec59054358af63657f794492d8e5127d (patch)
tree1cc3de40c82ea7f63a1b9d74181d497747994cba
parentf34157878d3b17641ad2366988600c23c89d98b2 (diff)
parentf265788c336979090ac80b9ae173aa817c4fe40d (diff)
Merge tag 'sound-4.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "Just two HD-audio fixups for a recent Realtek codec model. It's pretty safe to apply (and unsurprisingly boring)" * tag 'sound-4.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda - fix headset mic problem for Dell machines with alc236 ALSA: hda/realtek - Add support for ALC236/ALC3204
-rw-r--r--sound/pci/hda/patch_realtek.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 0ce71111b4e3..546d515f3c1f 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;
@@ -6419,6 +6428,14 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = {
6419 ALC225_STANDARD_PINS, 6428 ALC225_STANDARD_PINS,
6420 {0x12, 0xb7a60130}, 6429 {0x12, 0xb7a60130},
6421 {0x1b, 0x90170110}), 6430 {0x1b, 0x90170110}),
6431 SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
6432 {0x12, 0x90a60140},
6433 {0x14, 0x90170110},
6434 {0x21, 0x02211020}),
6435 SND_HDA_PIN_QUIRK(0x10ec0236, 0x1028, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE,
6436 {0x12, 0x90a60140},
6437 {0x14, 0x90170150},
6438 {0x21, 0x02211020}),
6422 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL2_MIC_NO_PRESENCE, 6439 SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, "Dell", ALC255_FIXUP_DELL2_MIC_NO_PRESENCE,
6423 {0x14, 0x90170110}, 6440 {0x14, 0x90170110},
6424 {0x21, 0x02211020}), 6441 {0x21, 0x02211020}),
@@ -6806,6 +6823,7 @@ static int patch_alc269(struct hda_codec *codec)
6806 case 0x10ec0255: 6823 case 0x10ec0255:
6807 spec->codec_variant = ALC269_TYPE_ALC255; 6824 spec->codec_variant = ALC269_TYPE_ALC255;
6808 break; 6825 break;
6826 case 0x10ec0236:
6809 case 0x10ec0256: 6827 case 0x10ec0256:
6810 spec->codec_variant = ALC269_TYPE_ALC256; 6828 spec->codec_variant = ALC269_TYPE_ALC256;
6811 spec->shutup = alc256_shutup; 6829 spec->shutup = alc256_shutup;
@@ -7857,6 +7875,7 @@ static const struct hda_device_id snd_hda_id_realtek[] = {
7857 HDA_CODEC_ENTRY(0x10ec0233, "ALC233", patch_alc269), 7875 HDA_CODEC_ENTRY(0x10ec0233, "ALC233", patch_alc269),
7858 HDA_CODEC_ENTRY(0x10ec0234, "ALC234", patch_alc269), 7876 HDA_CODEC_ENTRY(0x10ec0234, "ALC234", patch_alc269),
7859 HDA_CODEC_ENTRY(0x10ec0235, "ALC233", patch_alc269), 7877 HDA_CODEC_ENTRY(0x10ec0235, "ALC233", patch_alc269),
7878 HDA_CODEC_ENTRY(0x10ec0236, "ALC236", patch_alc269),
7860 HDA_CODEC_ENTRY(0x10ec0255, "ALC255", patch_alc269), 7879 HDA_CODEC_ENTRY(0x10ec0255, "ALC255", patch_alc269),
7861 HDA_CODEC_ENTRY(0x10ec0256, "ALC256", patch_alc269), 7880 HDA_CODEC_ENTRY(0x10ec0256, "ALC256", patch_alc269),
7862 HDA_CODEC_ENTRY(0x10ec0260, "ALC260", patch_alc260), 7881 HDA_CODEC_ENTRY(0x10ec0260, "ALC260", patch_alc260),