Commit bf22c9ec authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jessica Yu

drm: remove drm_fb_helper_modinit

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: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJessica Yu <jeyu@kernel.org>
parent 8b1b4ecc
...@@ -32,16 +32,6 @@ ...@@ -32,16 +32,6 @@
#include <drm/drm_encoder.h> #include <drm/drm_encoder.h>
#include <drm/drm_modes.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 */ /* drm_dp_aux_dev.c */
#ifdef CONFIG_DRM_DP_AUX_CHARDEV #ifdef CONFIG_DRM_DP_AUX_CHARDEV
int drm_dp_aux_dev_init(void); int drm_dp_aux_dev_init(void);
......
...@@ -2499,24 +2499,3 @@ void drm_fbdev_generic_setup(struct drm_device *dev, ...@@ -2499,24 +2499,3 @@ void drm_fbdev_generic_setup(struct drm_device *dev,
drm_client_register(&fb_helper->client); drm_client_register(&fb_helper->client);
} }
EXPORT_SYMBOL(drm_fbdev_generic_setup); 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);
...@@ -64,19 +64,18 @@ MODULE_PARM_DESC(edid_firmware, ...@@ -64,19 +64,18 @@ MODULE_PARM_DESC(edid_firmware,
static int __init drm_kms_helper_init(void) static int __init drm_kms_helper_init(void)
{ {
int ret; /*
* The Kconfig DRM_KMS_HELPER selects FRAMEBUFFER_CONSOLE (if !EXPERT)
/* Call init functions from specific kms helpers here */ * but the module doesn't depend on any fb console symbols. At least
ret = drm_fb_helper_modinit(); * attempt to load fbcon to avoid leaving the system without a usable
if (ret < 0) * console.
goto out; */
if (IS_ENABLED(CONFIG_DRM_FBDEV_EMULATION) &&
ret = drm_dp_aux_dev_init(); IS_MODULE(CONFIG_FRAMEBUFFER_CONSOLE) &&
if (ret < 0) !IS_ENABLED(CONFIG_EXPERT))
goto out; request_module_nowait("fbcon");
out: return drm_dp_aux_dev_init();
return ret;
} }
static void __exit drm_kms_helper_exit(void) static void __exit drm_kms_helper_exit(void)
......
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