ALSA: ice1724 - Check for ac97 to avoid kernel oops
authorPavel Hofman <pavel.hofman@ivitera.com>
Thu, 5 Jan 2012 22:05:18 +0000 (23:05 +0100)
committerTakashi Iwai <tiwai@suse.de>
Sun, 8 Jan 2012 13:26:01 +0000 (14:26 +0100)
Cards with identical PCI ids but no AC97 config in EEPROM do not have
the ac97 field initialized. We must check for this case to avoid kernel oops.

Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/ice1712/amp.c

index e328cfb7620c77bd80d1c3788c373f6ababfc520..e525da2673be3c5a4b12de44eb7c81e6ccadfcdd 100644 (file)
@@ -68,8 +68,11 @@ static int __devinit snd_vt1724_amp_init(struct snd_ice1712 *ice)
 
 static int __devinit snd_vt1724_amp_add_controls(struct snd_ice1712 *ice)
 {
-       /* we use pins 39 and 41 of the VT1616 for left and right read outputs */
-       snd_ac97_write_cache(ice->ac97, 0x5a, snd_ac97_read(ice->ac97, 0x5a) & ~0x8000);
+       if (ice->ac97)
+               /* we use pins 39 and 41 of the VT1616 for left and right
+               read outputs */
+               snd_ac97_write_cache(ice->ac97, 0x5a,
+                       snd_ac97_read(ice->ac97, 0x5a) & ~0x8000);
        return 0;
 }