| From foo@baz Sun Nov 19 11:32:28 CET 2017 |
| From: Kailang Yang <kailang@realtek.com> |
| Date: Wed, 4 Jan 2017 14:49:07 +0800 |
| Subject: ALSA: hda/realtek - Add new codec ID ALC299 |
| |
| From: Kailang Yang <kailang@realtek.com> |
| |
| |
| [ Upstream commit 28f1f9b26cee161ddd3985b3eb78e3ffada08dda ] |
| |
| ALC299 was similar as ALC225. |
| Add headset support for ALC299. |
| ALC3271 was for Dell rename. |
| |
| Signed-off-by: Kailang Yang <kailang@realtek.com> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Sasha Levin <alexander.levin@verizon.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| sound/pci/hda/patch_realtek.c | 10 ++++++++++ |
| 1 file changed, 10 insertions(+) |
| |
| --- a/sound/pci/hda/patch_realtek.c |
| +++ b/sound/pci/hda/patch_realtek.c |
| @@ -338,6 +338,7 @@ static void alc_fill_eapd_coef(struct hd |
| case 0x10ec0288: |
| case 0x10ec0295: |
| case 0x10ec0298: |
| + case 0x10ec0299: |
| alc_update_coef_idx(codec, 0x10, 1<<9, 0); |
| break; |
| case 0x10ec0285: |
| @@ -914,6 +915,7 @@ static struct alc_codec_rename_pci_table |
| { 0x10ec0256, 0x1028, 0, "ALC3246" }, |
| { 0x10ec0225, 0x1028, 0, "ALC3253" }, |
| { 0x10ec0295, 0x1028, 0, "ALC3254" }, |
| + { 0x10ec0299, 0x1028, 0, "ALC3271" }, |
| { 0x10ec0670, 0x1025, 0, "ALC669X" }, |
| { 0x10ec0676, 0x1025, 0, "ALC679X" }, |
| { 0x10ec0282, 0x1043, 0, "ALC3229" }, |
| @@ -3721,6 +3723,7 @@ static void alc_headset_mode_unplugged(s |
| break; |
| case 0x10ec0225: |
| case 0x10ec0295: |
| + case 0x10ec0299: |
| alc_process_coef_fw(codec, coef0225); |
| break; |
| case 0x10ec0867: |
| @@ -3829,6 +3832,7 @@ static void alc_headset_mode_mic_in(stru |
| break; |
| case 0x10ec0225: |
| case 0x10ec0295: |
| + case 0x10ec0299: |
| alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x31<<10); |
| snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); |
| alc_process_coef_fw(codec, coef0225); |
| @@ -3887,6 +3891,7 @@ static void alc_headset_mode_default(str |
| switch (codec->core.vendor_id) { |
| case 0x10ec0225: |
| case 0x10ec0295: |
| + case 0x10ec0299: |
| alc_process_coef_fw(codec, coef0225); |
| break; |
| case 0x10ec0236: |
| @@ -4004,6 +4009,7 @@ static void alc_headset_mode_ctia(struct |
| break; |
| case 0x10ec0225: |
| case 0x10ec0295: |
| + case 0x10ec0299: |
| alc_process_coef_fw(codec, coef0225); |
| break; |
| case 0x10ec0867: |
| @@ -4098,6 +4104,7 @@ static void alc_headset_mode_omtp(struct |
| break; |
| case 0x10ec0225: |
| case 0x10ec0295: |
| + case 0x10ec0299: |
| alc_process_coef_fw(codec, coef0225); |
| break; |
| } |
| @@ -4183,6 +4190,7 @@ static void alc_determine_headset_type(s |
| break; |
| case 0x10ec0225: |
| case 0x10ec0295: |
| + case 0x10ec0299: |
| alc_process_coef_fw(codec, coef0225); |
| msleep(800); |
| val = alc_read_coef_idx(codec, 0x46); |
| @@ -6251,6 +6259,7 @@ static int patch_alc269(struct hda_codec |
| break; |
| case 0x10ec0225: |
| case 0x10ec0295: |
| + case 0x10ec0299: |
| spec->codec_variant = ALC269_TYPE_ALC225; |
| break; |
| case 0x10ec0234: |
| @@ -7249,6 +7258,7 @@ static const struct hda_device_id snd_hd |
| HDA_CODEC_ENTRY(0x10ec0294, "ALC294", patch_alc269), |
| HDA_CODEC_ENTRY(0x10ec0295, "ALC295", patch_alc269), |
| HDA_CODEC_ENTRY(0x10ec0298, "ALC298", patch_alc269), |
| + HDA_CODEC_ENTRY(0x10ec0299, "ALC299", patch_alc269), |
| HDA_CODEC_REV_ENTRY(0x10ec0861, 0x100340, "ALC660", patch_alc861), |
| HDA_CODEC_ENTRY(0x10ec0660, "ALC660-VD", patch_alc861vd), |
| HDA_CODEC_ENTRY(0x10ec0861, "ALC861", patch_alc861), |