summaryrefslogtreecommitdiff
path: root/drivers/video/nomodeset.c
diff options
context:
space:
mode:
authorThomas Zimmermann <tzimmermann@suse.de>2022-11-11 16:30:23 +0300
committerThomas Zimmermann <tzimmermann@suse.de>2022-11-16 15:26:12 +0300
commit9a758d8756daab5b8fda006e131c066336b16a32 (patch)
tree453f3eeffd5bbd66a22124082738d9473b61f4ab /drivers/video/nomodeset.c
parent27c3e9452d552ea86369a94f23287a9675f2d7a1 (diff)
downloadlinux-9a758d8756daab5b8fda006e131c066336b16a32.tar.xz
drm: Move nomodeset kernel parameter to drivers/video
Move the nomodeset kernel parameter to drivers/video to make it available to non-DRM drivers. Adapt the interface, but keep the DRM interface drm_firmware_drivers_only() to avoid churn within DRM. The function should later be inlined into callers. The parameter disables any DRM graphics driver that would replace a driver for firmware-provided scanout buffers. It is an option to easily fallback to basic graphics output if the hardware's native driver is broken. Moving it to a more prominent location wil make it available to fbdev as well. v2: * clarify the meaning of the nomodeset parameter (Javier) Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20221111133024.9897-2-tzimmermann@suse.de
Diffstat (limited to 'drivers/video/nomodeset.c')
-rw-r--r--drivers/video/nomodeset.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/video/nomodeset.c b/drivers/video/nomodeset.c
new file mode 100644
index 000000000000..13cc8b719697
--- /dev/null
+++ b/drivers/video/nomodeset.c
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <linux/module.h>
+#include <linux/types.h>
+
+#include <video/nomodeset.h>
+
+static bool video_nomodeset;
+
+bool video_firmware_drivers_only(void)
+{
+ return video_nomodeset;
+}
+EXPORT_SYMBOL(video_firmware_drivers_only);
+
+static int __init disable_modeset(char *str)
+{
+ video_nomodeset = true;
+
+ pr_warn("Booted with the nomodeset parameter. Only the system framebuffer will be available\n");
+
+ return 1;
+}
+
+/* Disable kernel modesetting */
+__setup("nomodeset", disable_modeset);