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: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jessica Yu <jeyu@kernel.org>
This commit is contained in:
parent
8b1b4eccb9
commit
bf22c9ec39
|
@ -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,
|
||||||
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,
|
||||||
|
|
||||||
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)
|
||||||
|
* 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");
|
||||||
|
|
||||||
/* Call init functions from specific kms helpers here */
|
return drm_dp_aux_dev_init();
|
||||||
ret = drm_fb_helper_modinit();
|
|
||||||
if (ret < 0)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
ret = drm_dp_aux_dev_init();
|
|
||||||
if (ret < 0)
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
out:
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __exit drm_kms_helper_exit(void)
|
static void __exit drm_kms_helper_exit(void)
|
||||||
|
|
Loading…
Reference in New Issue