From: Clemens Ladisch Date: Tue, 26 Aug 2008 18:05:03 +0000 (+0000) Subject: ALSA: oxygen: prevent muting of nonexistent AC97 controls X-Git-Tag: v2.6.26.4~33 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=752e95e66704fe0b158dde2a01c9aee3babbd832;p=karo-tx-linux.git ALSA: oxygen: prevent muting of nonexistent AC97 controls commit 3d839e5b87a70effc629c1cdbf77d837ef141919 upstream Date: Tue, 26 Aug 2008 11:06:26 +0200 Subject: 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: Clemens Ladisch Signed-off-by: Takashi Iwai Signed-off-by: Greg Kroah-Hartman --- diff --git a/sound/pci/oxygen/oxygen_mixer.c b/sound/pci/oxygen/oxygen_mixer.c index 6facac5aed90..05eb8994c141 100644 --- a/sound/pci/oxygen/oxygen_mixer.c +++ b/sound/pci/oxygen/oxygen_mixer.c @@ -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);