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

Commit c8a9afa6 authored by Jaroslav Kysela's avatar Jaroslav Kysela Committed by Takashi Iwai
Browse files

ALSA: hda/realtek: merge alc_fixup_headset_jack to alc295_fixup_chromebook



The ALC225_FIXUP_HEADSET_JACK fixup can be merged to alc295_fixup_chromebook.
There are no other users for ALC225_FIXUP_HEADSET_JACK other than
the chromebook hardware.

Fixes: 10f5b1b8 ("ALSA: hda/realtek - Fixed Headset Mic JD not stable")
Cc: Kailang Yang <kailang@realtek.com>
Signed-off-by: default avatarJaroslav Kysela <perex@perex.cz>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent c24a1269
Loading
Loading
Loading
Loading
+13 −30
Original line number Diff line number Diff line
@@ -5491,7 +5491,7 @@ static void alc_headset_btn_callback(struct hda_codec *codec,
	jack->jack->button_state = report;
}

static void alc_fixup_headset_jack(struct hda_codec *codec,
static void alc295_fixup_chromebook(struct hda_codec *codec,
				    const struct hda_fixup *fix, int action)
{

@@ -5501,6 +5501,16 @@ static void alc_fixup_headset_jack(struct hda_codec *codec,
						    alc_headset_btn_callback);
		snd_hda_jack_add_kctl(codec, 0x55, "Headset Jack", false,
				      SND_JACK_HEADSET, alc_headset_btn_keymap);
		switch (codec->core.vendor_id) {
		case 0x10ec0295:
			alc_update_coef_idx(codec, 0x4a, 0x8000, 1 << 15); /* Reset HP JD */
			alc_update_coef_idx(codec, 0x4a, 0x8000, 0 << 15);
			break;
		case 0x10ec0236:
			alc_update_coef_idx(codec, 0x1b, 0x8000, 1 << 15); /* Reset HP JD */
			alc_update_coef_idx(codec, 0x1b, 0x8000, 0 << 15);
			break;
		}
		break;
	case HDA_FIXUP_ACT_INIT:
		switch (codec->core.vendor_id) {
@@ -5521,26 +5531,6 @@ static void alc_fixup_headset_jack(struct hda_codec *codec,
	}
}

static void alc295_fixup_chromebook(struct hda_codec *codec,
				    const struct hda_fixup *fix, int action)
{

	switch (action) {
	case HDA_FIXUP_ACT_PRE_PROBE:
		switch (codec->core.vendor_id) {
		case 0x10ec0295:
			alc_update_coef_idx(codec, 0x4a, 0x8000, 1 << 15); /* Reset HP JD */
			alc_update_coef_idx(codec, 0x4a, 0x8000, 0 << 15);
			break;
		case 0x10ec0236:
			alc_update_coef_idx(codec, 0x1b, 0x8000, 1 << 15); /* Reset HP JD */
			alc_update_coef_idx(codec, 0x1b, 0x8000, 0 << 15);
			break;
		}
		break;
	}
}

static void alc_fixup_disable_mic_vref(struct hda_codec *codec,
				  const struct hda_fixup *fix, int action)
{
@@ -5690,7 +5680,6 @@ enum {
	ALC294_FIXUP_ASUS_MIC,
	ALC294_FIXUP_ASUS_HEADSET_MIC,
	ALC294_FIXUP_ASUS_SPK,
	ALC225_FIXUP_HEADSET_JACK,
	ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE,
	ALC285_FIXUP_LENOVO_PC_BEEP_IN_NOISE,
	ALC255_FIXUP_ACER_HEADSET_MIC,
@@ -6637,9 +6626,9 @@ static const struct hda_fixup alc269_fixups[] = {
		.chained = true,
		.chain_id = ALC294_FIXUP_ASUS_HEADSET_MIC
	},
	[ALC225_FIXUP_HEADSET_JACK] = {
	[ALC295_FIXUP_CHROME_BOOK] = {
		.type = HDA_FIXUP_FUNC,
		.v.func = alc_fixup_headset_jack,
		.v.func = alc295_fixup_chromebook,
	},
	[ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE] = {
		.type = HDA_FIXUP_PINS,
@@ -6671,12 +6660,6 @@ static const struct hda_fixup alc269_fixups[] = {
		.chained = true,
		.chain_id = ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC
	},
	[ALC295_FIXUP_CHROME_BOOK] = {
		.type = HDA_FIXUP_FUNC,
		.v.func = alc295_fixup_chromebook,
		.chained = true,
		.chain_id = ALC225_FIXUP_HEADSET_JACK
	},
};

static const struct snd_pci_quirk alc269_fixup_tbl[] = {