From a96878dad256517f97243120731c33dfd5411369 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 30 Jun 2022 11:26:59 +0200 Subject: [PATCH] 5.4-stable patches added patches: drm-remove-drm_fb_helper_modinit.patch --- .../drm-remove-drm_fb_helper_modinit.patch | 104 ++++++++++++++++++ queue-5.4/series | 1 + 2 files changed, 105 insertions(+) create mode 100644 queue-5.4/drm-remove-drm_fb_helper_modinit.patch create mode 100644 queue-5.4/series diff --git a/queue-5.4/drm-remove-drm_fb_helper_modinit.patch b/queue-5.4/drm-remove-drm_fb_helper_modinit.patch new file mode 100644 index 00000000000..3ea42777d63 --- /dev/null +++ b/queue-5.4/drm-remove-drm_fb_helper_modinit.patch @@ -0,0 +1,104 @@ +From bf22c9ec39da90ce866d5f625d616f28bc733dc1 Mon Sep 17 00:00:00 2001 +From: Christoph Hellwig +Date: Tue, 2 Feb 2021 13:13:23 +0100 +Subject: drm: remove drm_fb_helper_modinit + +From: Christoph Hellwig + +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 +Signed-off-by: Christoph Hellwig +Signed-off-by: Jessica Yu +Signed-off-by: Greg Kroah-Hartman +--- + drivers/gpu/drm/drm_crtc_helper_internal.h | 10 ---------- + drivers/gpu/drm/drm_fb_helper.c | 21 --------------------- + drivers/gpu/drm/drm_kms_helper_common.c | 23 +++++++++++------------ + 3 files changed, 11 insertions(+), 43 deletions(-) + +--- a/drivers/gpu/drm/drm_crtc_helper_internal.h ++++ b/drivers/gpu/drm/drm_crtc_helper_internal.h +@@ -32,16 +32,6 @@ + #include + #include + +-/* 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); +--- a/drivers/gpu/drm/drm_fb_helper.c ++++ b/drivers/gpu/drm/drm_fb_helper.c +@@ -2415,24 +2415,3 @@ int drm_fbdev_generic_setup(struct drm_d + return 0; + } + 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); +--- 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; ++ /* ++ * 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 */ +- ret = drm_fb_helper_modinit(); +- if (ret < 0) +- goto out; +- +- ret = drm_dp_aux_dev_init(); +- if (ret < 0) +- goto out; +- +-out: +- return ret; ++ return drm_dp_aux_dev_init(); + } + + static void __exit drm_kms_helper_exit(void) diff --git a/queue-5.4/series b/queue-5.4/series new file mode 100644 index 00000000000..6c015009f46 --- /dev/null +++ b/queue-5.4/series @@ -0,0 +1 @@ +drm-remove-drm_fb_helper_modinit.patch -- 2.47.3