]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm: remove drm_fb_helper_modinit
authorChristoph Hellwig <hch@lst.de>
Tue, 2 Feb 2021 12:13:23 +0000 (13:13 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 2 Jul 2022 14:39:23 +0000 (16:39 +0200)
commit bf22c9ec39da90ce866d5f625d616f28bc733dc1 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.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 8033467db4beeff00fe7ea9f8a09e16d13e91d48..ac5d61e65124ea345c0e034e832db456a1d0a788 100644 (file)
@@ -2271,24 +2271,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)