Commit b99f0aad authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

[media] em28xx: check if a device has audio earlier

Better to split chipset detection from the audio setup. So, move the
detection code to em28xx_init_dev().
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent 9634614f
...@@ -2930,6 +2930,16 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev, ...@@ -2930,6 +2930,16 @@ static int em28xx_init_dev(struct em28xx *dev, struct usb_device *udev,
} }
} }
if (dev->chip_id == CHIP_ID_EM2870 ||
dev->chip_id == CHIP_ID_EM2874 ||
dev->chip_id == CHIP_ID_EM28174 ||
dev->chip_id == CHIP_ID_EM28178) {
/* Digital only device - don't load any alsa module */
dev->audio_mode.has_audio = false;
dev->has_audio_class = false;
dev->has_alsa_audio = false;
}
if (chip_name != default_chip_name) if (chip_name != default_chip_name)
printk(KERN_INFO DRIVER_NAME printk(KERN_INFO DRIVER_NAME
": chip ID is %s\n", chip_name); ": chip ID is %s\n", chip_name);
...@@ -3199,6 +3209,7 @@ static int em28xx_usb_probe(struct usb_interface *interface, ...@@ -3199,6 +3209,7 @@ static int em28xx_usb_probe(struct usb_interface *interface,
dev->alt = -1; dev->alt = -1;
dev->is_audio_only = has_audio && !(has_video || has_dvb); dev->is_audio_only = has_audio && !(has_video || has_dvb);
dev->has_alsa_audio = has_audio; dev->has_alsa_audio = has_audio;
dev->audio_mode.has_audio = has_audio;
dev->has_video = has_video; dev->has_video = has_video;
dev->audio_ifnum = ifnum; dev->audio_ifnum = ifnum;
......
...@@ -505,18 +505,8 @@ int em28xx_audio_setup(struct em28xx *dev) ...@@ -505,18 +505,8 @@ int em28xx_audio_setup(struct em28xx *dev)
int vid1, vid2, feat, cfg; int vid1, vid2, feat, cfg;
u32 vid; u32 vid;
if (dev->chip_id == CHIP_ID_EM2870 || if (!dev->audio_mode.has_audio)
dev->chip_id == CHIP_ID_EM2874 ||
dev->chip_id == CHIP_ID_EM28174 ||
dev->chip_id == CHIP_ID_EM28178) {
/* Digital only device - don't load any alsa module */
dev->audio_mode.has_audio = false;
dev->has_audio_class = false;
dev->has_alsa_audio = false;
return 0; return 0;
}
dev->audio_mode.has_audio = true;
/* See how this device is configured */ /* See how this device is configured */
cfg = em28xx_read_reg(dev, EM28XX_R00_CHIPCFG); cfg = em28xx_read_reg(dev, EM28XX_R00_CHIPCFG);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment