drm: remove drm_fb_helper_modinit
authorChristoph Hellwig <hch@lst.de>
Tue, 2 Feb 2021 12:13:23 +0000 (13:13 +0100)
committerJessica Yu <jeyu@kernel.org>
Mon, 8 Feb 2021 11:20:38 +0000 (12:20 +0100)
drm_fb_helper_modinit has a lot of boilerplate for what is not very
simple functionality.  Just open code it in the only caller using
IS_ENABLED and IS_MODULE, and skip the find_module check as a
request_module is harmless if the module is already loaded (and not
other caller has this find_module check either).

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
drivers/gpu/drm/drm_crtc_helper_internal.h
drivers/gpu/drm/drm_fb_helper.c
drivers/gpu/drm/drm_kms_helper_common.c

index 25ce42e..61e09f8 100644 (file)
 #include <drm/drm_encoder.h>
 #include <drm/drm_modes.h>
 
-/* drm_fb_helper.c */
-#ifdef CONFIG_DRM_FBDEV_EMULATION
-int drm_fb_helper_modinit(void);
-#else
-static inline int drm_fb_helper_modinit(void)
-{
-       return 0;
-}
-#endif
-
 /* drm_dp_aux_dev.c */
 #ifdef CONFIG_DRM_DP_AUX_CHARDEV
 int drm_dp_aux_dev_init(void);
index 4b81195..0b9f1ae 100644 (file)
@@ -2499,24 +2499,3 @@ void drm_fbdev_generic_setup(struct drm_device *dev,
        drm_client_register(&fb_helper->client);
 }
 EXPORT_SYMBOL(drm_fbdev_generic_setup);
-
-/* The Kconfig DRM_KMS_HELPER selects FRAMEBUFFER_CONSOLE (if !EXPERT)
- * but the module doesn't depend on any fb console symbols.  At least
- * attempt to load fbcon to avoid leaving the system without a usable console.
- */
-int __init drm_fb_helper_modinit(void)
-{
-#if defined(CONFIG_FRAMEBUFFER_CONSOLE_MODULE) && !defined(CONFIG_EXPERT)
-       const char name[] = "fbcon";
-       struct module *fbcon;
-
-       mutex_lock(&module_mutex);
-       fbcon = find_module(name);
-       mutex_unlock(&module_mutex);
-
-       if (!fbcon)
-               request_module_nowait(name);
-#endif
-       return 0;
-}
-EXPORT_SYMBOL(drm_fb_helper_modinit);
index 221a852..f933da1 100644 (file)
@@ -64,19 +64,18 @@ MODULE_PARM_DESC(edid_firmware,
 
 static int __init drm_kms_helper_init(void)
 {
-       int ret;
-
-       /* Call init functions from specific kms helpers here */
-       ret = drm_fb_helper_modinit();
-       if (ret < 0)
-               goto out;
-
-       ret = drm_dp_aux_dev_init();
-       if (ret < 0)
-               goto out;
-
-out:
-       return ret;
+       /*
+        * The Kconfig DRM_KMS_HELPER selects FRAMEBUFFER_CONSOLE (if !EXPERT)
+        * but the module doesn't depend on any fb console symbols.  At least
+        * attempt to load fbcon to avoid leaving the system without a usable
+        * console.
+        */
+       if (IS_ENABLED(CONFIG_DRM_FBDEV_EMULATION) &&
+           IS_MODULE(CONFIG_FRAMEBUFFER_CONSOLE) &&
+           !IS_ENABLED(CONFIG_EXPERT))
+               request_module_nowait("fbcon");
+
+       return drm_dp_aux_dev_init();
 }
 
 static void __exit drm_kms_helper_exit(void)