| From e7848163aa2a649d9065f230fadff80dc3519775 Mon Sep 17 00:00:00 2001 |
| From: Pavel Hofman <pavel.hofman@ivitera.com> |
| Date: Thu, 5 Jan 2012 23:05:18 +0100 |
| Subject: ALSA: ice1724 - Check for ac97 to avoid kernel oops |
| |
| From: Pavel Hofman <pavel.hofman@ivitera.com> |
| |
| commit e7848163aa2a649d9065f230fadff80dc3519775 upstream. |
| |
| 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> |
| Signed-off-by: Takashi Iwai <tiwai@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| sound/pci/ice1712/amp.c | 7 +++++-- |
| 1 file changed, 5 insertions(+), 2 deletions(-) |
| |
| --- a/sound/pci/ice1712/amp.c |
| +++ b/sound/pci/ice1712/amp.c |
| @@ -69,8 +69,11 @@ static int __devinit snd_vt1724_amp_init |
| |
| 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; |
| } |
| |