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

Commit b5a22935 authored by Connor McAdams's avatar Connor McAdams Committed by Takashi Iwai
Browse files

ALSA: hda/ca0132 - Actually fix microphone issue



This patch fixes the microphone issue for all cards. The previous fix
worked on the ZxR, but not on the AE-5 or Z. This patch has been tested
to work for all cards.

Signed-off-by: default avatarConnor McAdams <conmanx360@gmail.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent eb7ebfa3
Loading
Loading
Loading
Loading
+37 −36
Original line number Diff line number Diff line
@@ -6983,8 +6983,13 @@ static void sbz_chipio_startup_data(struct hda_codec *codec)
static void ca0132_alt_dsp_scp_startup(struct hda_codec *codec)
{
	struct ca0132_spec *spec = codec->spec;
	unsigned int tmp;
	unsigned int tmp, i;

	/*
	 * Gotta run these twice, or else mic works inconsistently. Not clear
	 * why this is, but multiple tests have confirmed it.
	 */
	for (i = 0; i < 2; i++) {
		switch (spec->quirk) {
		case QUIRK_SBZ:
		case QUIRK_AE5:
@@ -7015,6 +7020,8 @@ static void ca0132_alt_dsp_scp_startup(struct hda_codec *codec)
			dspio_set_uint_param_no_source(codec, 0x80, 0x0C, tmp);
			break;
		}
		msleep(100);
	}
}

static void ca0132_alt_dsp_initial_mic_setup(struct hda_codec *codec)
@@ -7246,8 +7253,6 @@ static void r3d_setup_defaults(struct hda_codec *codec)
	int num_fx;
	int idx, i;

	msleep(100);

	if (spec->dsp_state != DSP_DOWNLOADED)
		return;

@@ -7292,8 +7297,6 @@ static void sbz_setup_defaults(struct hda_codec *codec)
	int num_fx;
	int idx, i;

	msleep(100);

	if (spec->dsp_state != DSP_DOWNLOADED)
		return;

@@ -7351,8 +7354,6 @@ static void ae5_setup_defaults(struct hda_codec *codec)
	int num_fx;
	int idx, i;

	msleep(100);

	if (spec->dsp_state != DSP_DOWNLOADED)
		return;