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 25ce42e799952c6776d6d76bec0b81de446c3cbb..61e09f8a8d0ff07d15da3e7ea378602208adc972 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 4b81195106875d97abf38310ab4f8b4105ebfcd1..0b9f1ae1b7864c17857764fa44bc38f2d2b7a61e 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 221a8528c9937a7b01ba0d8d5b6fdf778f1dfcf3..f933da1656eb52f23b379e9637b8ea16ac77eef9 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)