aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/usb/em28xx/em28xx-cards.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
index ca62b9981380..ab98d0845861 100644
--- a/drivers/media/usb/em28xx/em28xx-cards.c
+++ b/drivers/media/usb/em28xx/em28xx-cards.c
@@ -2875,12 +2875,20 @@ static void em28xx_card_setup(struct em28xx *dev)
2875} 2875}
2876 2876
2877 2877
2878#if defined(CONFIG_MODULES) && defined(MODULE)
2879static void request_module_async(struct work_struct *work) 2878static void request_module_async(struct work_struct *work)
2880{ 2879{
2881 struct em28xx *dev = container_of(work, 2880 struct em28xx *dev = container_of(work,
2882 struct em28xx, request_module_wk); 2881 struct em28xx, request_module_wk);
2883 2882
2883 /*
2884 * The em28xx extensions can be modules or builtin. If the
2885 * modules are already loaded or are built in, those extensions
2886 * can be initialised right now. Otherwise, the module init
2887 * code will do it.
2888 */
2889 em28xx_init_extension(dev);
2890
2891#if defined(CONFIG_MODULES) && defined(MODULE)
2884 if (dev->has_audio_class) 2892 if (dev->has_audio_class)
2885 request_module("snd-usb-audio"); 2893 request_module("snd-usb-audio");
2886 else if (dev->has_alsa_audio) 2894 else if (dev->has_alsa_audio)
@@ -2890,6 +2898,7 @@ static void request_module_async(struct work_struct *work)
2890 request_module("em28xx-dvb"); 2898 request_module("em28xx-dvb");
2891 if (dev->board.ir_codes && !disable_ir) 2899 if (dev->board.ir_codes && !disable_ir)
2892 request_module("em28xx-rc"); 2900 request_module("em28xx-rc");
2901#endif /* CONFIG_MODULES */
2893} 2902}
2894 2903
2895static void request_modules(struct em28xx *dev) 2904static void request_modules(struct em28xx *dev)
@@ -2902,10 +2911,6 @@ static void flush_request_modules(struct em28xx *dev)
2902{ 2911{
2903 flush_work_sync(&dev->request_module_wk); 2912 flush_work_sync(&dev->request_module_wk);
2904} 2913}
2905#else
2906#define request_modules(dev)
2907#define flush_request_modules(dev)
2908#endif /* CONFIG_MODULES */
2909 2914
2910/* 2915/*
2911 * em28xx_release_resources() 2916 * em28xx_release_resources()
@@ -3324,13 +3329,6 @@ static int em28xx_usb_probe(struct usb_interface *interface,
3324 */ 3329 */
3325 mutex_unlock(&dev->lock); 3330 mutex_unlock(&dev->lock);
3326 3331
3327 /*
3328 * These extensions can be modules. If the modules are already
3329 * loaded then we can initialise the device now, otherwise we
3330 * will initialise it when the modules load instead.
3331 */
3332 em28xx_init_extension(dev);
3333
3334 return 0; 3332 return 0;
3335 3333
3336unlock_and_free: 3334unlock_and_free: