diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-10-26 02:02:42 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-10-26 02:02:42 -0400 |
commit | ecda3d95ec59054358af63657f794492d8e5127d (patch) | |
tree | 1cc3de40c82ea7f63a1b9d74181d497747994cba | |
parent | f34157878d3b17641ad2366988600c23c89d98b2 (diff) | |
parent | f265788c336979090ac80b9ae173aa817c4fe40d (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.c | 19 |
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), |