summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/drm_kms_helper_common.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2021-02-02 15:13:23 +0300
committerJessica Yu <jeyu@kernel.org>2021-02-08 14:20:38 +0300
commitbf22c9ec39da90ce866d5f625d616f28bc733dc1 (patch)
treeaa4021cd152b0c20620868e2172772db7af71f58 /drivers/gpu/drm/drm_kms_helper_common.c
parent8b1b4eccb9ab0848d07cc5d2215fdfd62f423b69 (diff)
downloadlinux-bf22c9ec39da90ce866d5f625d616f28bc733dc1.tar.xz
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>
Diffstat (limited to 'drivers/gpu/drm/drm_kms_helper_common.c')
-rw-r--r--drivers/gpu/drm/drm_kms_helper_common.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/drivers/gpu/drm/drm_kms_helper_common.c b/drivers/gpu/drm/drm_kms_helper_common.c
index 221a8528c993..f933da1656eb 100644
--- a/drivers/gpu/drm/drm_kms_helper_common.c
+++ b/drivers/gpu/drm/drm_kms_helper_common.c
@@ -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)