Skip to content

Commit

Permalink
drm: remove drm_fb_helper_modinit
Browse files Browse the repository at this point in the history
commit bf22c9e 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>
  • Loading branch information
Christoph Hellwig authored and gregkh committed Jul 2, 2022
1 parent 52dc7f3 commit 069fff5
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 44 deletions.
10 changes: 0 additions & 10 deletions drivers/gpu/drm/drm_crtc_helper_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,16 +32,6 @@
#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);
Expand Down
21 changes: 0 additions & 21 deletions drivers/gpu/drm/drm_fb_helper.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
25 changes: 12 additions & 13 deletions drivers/gpu/drm/drm_kms_helper_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit 069fff5

Please sign in to comment.