| From 1948fc065a89f18d057b8ffaef6d7242ad99edb8 Mon Sep 17 00:00:00 2001 |
| From: Takashi Iwai <tiwai@suse.de> |
| Date: Fri, 18 Jun 2021 18:17:20 +0200 |
| Subject: ALSA: hda/realtek: Add another ALC236 variant support |
| |
| From: Takashi Iwai <tiwai@suse.de> |
| |
| commit 1948fc065a89f18d057b8ffaef6d7242ad99edb8 upstream. |
| |
| The codec chip 10ec:0230 is another variant of ALC236, combined with a |
| card reader. Apply the equivalent setup as 10ec:0236. |
| |
| BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1184869 |
| Cc: <stable@vger.kernel.org> |
| Link: https://lore.kernel.org/r/20210618161720.28694-1-tiwai@suse.de |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/pci/hda/patch_realtek.c | 13 +++++++++++++ |
| 1 file changed, 13 insertions(+) |
| |
| --- a/sound/pci/hda/patch_realtek.c |
| +++ b/sound/pci/hda/patch_realtek.c |
| @@ -385,6 +385,7 @@ static void alc_fill_eapd_coef(struct hd |
| alc_update_coef_idx(codec, 0x67, 0xf000, 0x3000); |
| fallthrough; |
| case 0x10ec0215: |
| + case 0x10ec0230: |
| case 0x10ec0233: |
| case 0x10ec0235: |
| case 0x10ec0236: |
| @@ -3153,6 +3154,7 @@ static void alc_disable_headset_jack_key |
| alc_update_coef_idx(codec, 0x49, 0x0045, 0x0); |
| alc_update_coef_idx(codec, 0x44, 0x0045 << 8, 0x0); |
| break; |
| + case 0x10ec0230: |
| case 0x10ec0236: |
| case 0x10ec0256: |
| alc_write_coef_idx(codec, 0x48, 0x0); |
| @@ -3180,6 +3182,7 @@ static void alc_enable_headset_jack_key( |
| alc_update_coef_idx(codec, 0x49, 0x007f, 0x0045); |
| alc_update_coef_idx(codec, 0x44, 0x007f << 8, 0x0045 << 8); |
| break; |
| + case 0x10ec0230: |
| case 0x10ec0236: |
| case 0x10ec0256: |
| alc_write_coef_idx(codec, 0x48, 0xd011); |
| @@ -4737,6 +4740,7 @@ static void alc_headset_mode_unplugged(s |
| case 0x10ec0255: |
| alc_process_coef_fw(codec, coef0255); |
| break; |
| + case 0x10ec0230: |
| case 0x10ec0236: |
| case 0x10ec0256: |
| alc_process_coef_fw(codec, coef0256); |
| @@ -4851,6 +4855,7 @@ static void alc_headset_mode_mic_in(stru |
| alc_process_coef_fw(codec, coef0255); |
| snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50); |
| break; |
| + case 0x10ec0230: |
| case 0x10ec0236: |
| case 0x10ec0256: |
| alc_write_coef_idx(codec, 0x45, 0xc489); |
| @@ -5000,6 +5005,7 @@ static void alc_headset_mode_default(str |
| case 0x10ec0255: |
| alc_process_coef_fw(codec, coef0255); |
| break; |
| + case 0x10ec0230: |
| case 0x10ec0236: |
| case 0x10ec0256: |
| alc_write_coef_idx(codec, 0x1b, 0x0e4b); |
| @@ -5098,6 +5104,7 @@ static void alc_headset_mode_ctia(struct |
| case 0x10ec0255: |
| alc_process_coef_fw(codec, coef0255); |
| break; |
| + case 0x10ec0230: |
| case 0x10ec0236: |
| case 0x10ec0256: |
| alc_process_coef_fw(codec, coef0256); |
| @@ -5211,6 +5218,7 @@ static void alc_headset_mode_omtp(struct |
| case 0x10ec0255: |
| alc_process_coef_fw(codec, coef0255); |
| break; |
| + case 0x10ec0230: |
| case 0x10ec0236: |
| case 0x10ec0256: |
| alc_process_coef_fw(codec, coef0256); |
| @@ -5311,6 +5319,7 @@ static void alc_determine_headset_type(s |
| val = alc_read_coef_idx(codec, 0x46); |
| is_ctia = (val & 0x0070) == 0x0070; |
| break; |
| + case 0x10ec0230: |
| case 0x10ec0236: |
| case 0x10ec0256: |
| alc_write_coef_idx(codec, 0x1b, 0x0e4b); |
| @@ -5604,6 +5613,7 @@ static void alc255_set_default_jack_type |
| case 0x10ec0255: |
| alc_process_coef_fw(codec, alc255fw); |
| break; |
| + case 0x10ec0230: |
| case 0x10ec0236: |
| case 0x10ec0256: |
| alc_process_coef_fw(codec, alc256fw); |
| @@ -6204,6 +6214,7 @@ static void alc_combo_jack_hp_jd_restart |
| alc_update_coef_idx(codec, 0x4a, 0x8000, 1 << 15); /* Reset HP JD */ |
| alc_update_coef_idx(codec, 0x4a, 0x8000, 0 << 15); |
| break; |
| + case 0x10ec0230: |
| case 0x10ec0235: |
| case 0x10ec0236: |
| case 0x10ec0255: |
| @@ -9330,6 +9341,7 @@ static int patch_alc269(struct hda_codec |
| spec->shutup = alc256_shutup; |
| spec->init_hook = alc256_init; |
| break; |
| + case 0x10ec0230: |
| case 0x10ec0236: |
| case 0x10ec0256: |
| spec->codec_variant = ALC269_TYPE_ALC256; |
| @@ -10621,6 +10633,7 @@ static const struct hda_device_id snd_hd |
| HDA_CODEC_ENTRY(0x10ec0221, "ALC221", patch_alc269), |
| HDA_CODEC_ENTRY(0x10ec0222, "ALC222", patch_alc269), |
| HDA_CODEC_ENTRY(0x10ec0225, "ALC225", patch_alc269), |
| + HDA_CODEC_ENTRY(0x10ec0230, "ALC236", patch_alc269), |
| HDA_CODEC_ENTRY(0x10ec0231, "ALC231", patch_alc269), |
| HDA_CODEC_ENTRY(0x10ec0233, "ALC233", patch_alc269), |
| HDA_CODEC_ENTRY(0x10ec0234, "ALC234", patch_alc269), |