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

Commit 3d839e5b authored by Clemens Ladisch's avatar Clemens Ladisch Committed by Takashi Iwai
Browse files

ALSA: oxygen: prevent muting of nonexistent AC97 controls



The Xonar DX does not have CD Capture controls, so we have to check that
a control actually exists before muting it.

Signed-off-by: default avatarClemens Ladisch <clemens@ladisch.de>
Cc: <stable@kernel.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent b8e6c91c
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -512,9 +512,12 @@ static int ac97_switch_get(struct snd_kcontrol *ctl,

static void mute_ac97_ctl(struct oxygen *chip, unsigned int control)
{
	unsigned int priv_idx = chip->controls[control]->private_value & 0xff;
	unsigned int priv_idx;
	u16 value;

	if (!chip->controls[control])
		return;
	priv_idx = chip->controls[control]->private_value & 0xff;
	value = oxygen_read_ac97(chip, 0, priv_idx);
	if (!(value & 0x8000)) {
		oxygen_write_ac97(chip, 0, priv_idx, value | 0x8000);