fbcon non-desktop display use

Charles Lohr lohr85 at gmail.com
Thu Mar 15 03:32:36 UTC 2018


There was a patch submitted by Keith Packard which prevents fbcon from
using non-desktop displays, but this breaks vive, and other HMD
development/use on embedded and other fbdev systems (
https://patchwork.kernel.org/patch/10053989/ ).

Even if the vive is the only device connected, it will still not permit it
to be operated.  See https://github.com/linux-sunxi/linux-sunxi/issues/291
for dri with a lot of debugging turned on.

I can understand that most users would probably prefer that the vive isn't
automatically used if no other displays are available, however, the current
behavior prevents use of the vive on all devices that use fbdev for their
primary output.

This patch allows enabling of non-desktop devices both as a kernel command
line as well as by setting /sys/module/drm_kms_helper/par
ameters/drm_fbdev_permit_non_desktop.

I've never sent an email to the kernel devel list, so I'm still a little
nervous.  Especially because this is against a different branch, and I'm
starting to think that I should be messaging there, but this is something
that really needs to go upstream.

Signed-off-by:

diff --git a/drivers/gpu/drm/drm_fb_helper.c
b/drivers/gpu/drm/drm_fb_helper.c
index 035784ddd..8bfaf79ff 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -55,6 +55,11 @@ MODULE_PARM_DESC(drm_fbdev_overalloc,
                 "Overallocation of the fbdev buffer (%) [default="
                 __MODULE_STRING(CONFIG_DRM_FBDEV_OVERALLOC) "]");

+static bool drm_fbdev_permit_non_desktop;
+module_param(drm_fbdev_permit_non_desktop, bool, 0644);
+MODULE_PARM_DESC(drm_fbdev_permit_non_desktop,
+               "Allow the framebuffer to use non-desktop displays
[default=off]");
+
 static LIST_HEAD(kernel_fb_helper_list);
 static DEFINE_MUTEX(kernel_fb_helper_lock);

@@ -2109,7 +2114,7 @@ static bool drm_connector_enabled(struct
drm_connector *connector, bool strict)
 {
        bool enable;

-       if (connector->display_info.non_desktop)
+       if (connector->display_info.non_desktop &&
!drm_fbdev_permit_non_desktop)
                return false;

        if (strict)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20180314/02dd9ab7/attachment.html>


More information about the dri-devel mailing list