em28xx: don't load audio modules when AC97 is mis-detected
authorMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 27 Nov 2009 15:52:54 +0000 (13:52 -0200)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 5 Dec 2009 20:42:16 +0000 (18:42 -0200)
With em2800 hardware, AC97 hardware can be detected even when it doesn't
exist. If, after probing for AC97, the driver won't find a companion
chip, simply prevents the load of the audio modules.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/em28xx/em28xx-core.c

index 3358600..3f86d36 100644 (file)
@@ -533,8 +533,15 @@ int em28xx_audio_setup(struct em28xx *dev)
 
        vid1 = em28xx_read_ac97(dev, AC97_VENDOR_ID1);
        if (vid1 < 0) {
-               /* Device likely doesn't support AC97 */
+               /*
+                * Device likely doesn't support AC97
+                * Note: (some) em2800 devices without eeprom reports 0x91 on
+                *       CHIPCFG register, even not having an AC97 chip
+                */
                em28xx_warn("AC97 chip type couldn't be determined\n");
+               dev->audio_mode.ac97 = EM28XX_NO_AC97;
+               dev->has_alsa_audio = 0;
+               dev->audio_mode.has_audio = 0;
                goto init_audio;
        }