Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c812f03 authored by Kailang Yang's avatar Kailang Yang Committed by Greg Kroah-Hartman
Browse files

ALSA: hda/realtek - Add support for ALC236/ALC3204



commit 736f20a7060857ff569e9e9586ae6c1204a73e07 upstream.

Add support for ALC236/ALC3204.
Add headset mode support for ALC236/ALC3204.

Signed-off-by: default avatarKailang Yang <kailang@realtek.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent fce67b31
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -329,6 +329,7 @@ static void alc_fill_eapd_coef(struct hda_codec *codec)
		break;
	case 0x10ec0225:
	case 0x10ec0233:
	case 0x10ec0236:
	case 0x10ec0255:
	case 0x10ec0256:
	case 0x10ec0282:
@@ -909,6 +910,7 @@ static struct alc_codec_rename_pci_table rename_pci_tbl[] = {
	{ 0x10ec0275, 0x1028, 0, "ALC3260" },
	{ 0x10ec0899, 0x1028, 0, "ALC3861" },
	{ 0x10ec0298, 0x1028, 0, "ALC3266" },
	{ 0x10ec0236, 0x1028, 0, "ALC3204" },
	{ 0x10ec0256, 0x1028, 0, "ALC3246" },
	{ 0x10ec0225, 0x1028, 0, "ALC3253" },
	{ 0x10ec0295, 0x1028, 0, "ALC3254" },
@@ -3694,6 +3696,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
		alc_process_coef_fw(codec, coef0255_1);
		alc_process_coef_fw(codec, coef0255);
		break;
	case 0x10ec0236:
	case 0x10ec0256:
		alc_process_coef_fw(codec, coef0256);
		alc_process_coef_fw(codec, coef0255);
@@ -3774,6 +3777,7 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin,


	switch (codec->core.vendor_id) {
	case 0x10ec0236:
	case 0x10ec0255:
	case 0x10ec0256:
		alc_write_coef_idx(codec, 0x45, 0xc489);
@@ -3879,6 +3883,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
	case 0x10ec0295:
		alc_process_coef_fw(codec, coef0225);
		break;
	case 0x10ec0236:
	case 0x10ec0255:
	case 0x10ec0256:
		alc_process_coef_fw(codec, coef0255);
@@ -3962,6 +3967,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
	case 0x10ec0255:
		alc_process_coef_fw(codec, coef0255);
		break;
	case 0x10ec0236:
	case 0x10ec0256:
		alc_process_coef_fw(codec, coef0256);
		break;
@@ -4052,6 +4058,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
	case 0x10ec0255:
		alc_process_coef_fw(codec, coef0255);
		break;
	case 0x10ec0236:
	case 0x10ec0256:
		alc_process_coef_fw(codec, coef0256);
		break;
@@ -4119,6 +4126,7 @@ static void alc_determine_headset_type(struct hda_codec *codec)
	};

	switch (codec->core.vendor_id) {
	case 0x10ec0236:
	case 0x10ec0255:
	case 0x10ec0256:
		alc_process_coef_fw(codec, coef0255);
@@ -4320,6 +4328,7 @@ static void alc255_set_default_jack_type(struct hda_codec *codec)
	case 0x10ec0255:
		alc_process_coef_fw(codec, alc255fw);
		break;
	case 0x10ec0236:
	case 0x10ec0256:
		alc_process_coef_fw(codec, alc256fw);
		break;
@@ -6208,6 +6217,7 @@ static int patch_alc269(struct hda_codec *codec)
	case 0x10ec0255:
		spec->codec_variant = ALC269_TYPE_ALC255;
		break;
	case 0x10ec0236:
	case 0x10ec0256:
		spec->codec_variant = ALC269_TYPE_ALC256;
		spec->gen.mixer_nid = 0; /* ALC256 does not have any loopback mixer path */
@@ -7147,6 +7157,7 @@ static const struct hda_device_id snd_hda_id_realtek[] = {
	HDA_CODEC_ENTRY(0x10ec0233, "ALC233", patch_alc269),
	HDA_CODEC_ENTRY(0x10ec0234, "ALC234", patch_alc269),
	HDA_CODEC_ENTRY(0x10ec0235, "ALC233", patch_alc269),
	HDA_CODEC_ENTRY(0x10ec0236, "ALC236", patch_alc269),
	HDA_CODEC_ENTRY(0x10ec0255, "ALC255", patch_alc269),
	HDA_CODEC_ENTRY(0x10ec0256, "ALC256", patch_alc269),
	HDA_CODEC_ENTRY(0x10ec0260, "ALC260", patch_alc260),