drm/fb: add support for not enabling fbcon on non-desktop displays [v2]
authorDave Airlie <airlied@redhat.com>
Mon, 16 Oct 2017 04:08:39 +0000 (05:08 +0100)
committerDave Airlie <airlied@redhat.com>
Thu, 23 Nov 2017 02:45:30 +0000 (12:45 +1000)
We don't want fbcon to get used on non-desktop dislays,
don't pass them as enabled connectors to the fb helper setup.

This prevents my HMD from getting disorted fbcon, and from
affecting other displays console.

v2: Change description from non-standard to non-desktop

Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_fb_helper.c

index 116d1f1337c7e36da1622ffc88bfc6e218d461a3..07374008f146fa946750b1cfd3bf13bfd1b9c47d 100644 (file)
@@ -2033,6 +2033,9 @@ static bool drm_connector_enabled(struct drm_connector *connector, bool strict)
 {
        bool enable;
 
+       if (connector->display_info.non_desktop)
+               return false;
+
        if (strict)
                enable = connector->status == connector_status_connected;
        else
@@ -2052,7 +2055,8 @@ static void drm_enable_connectors(struct drm_fb_helper *fb_helper,
                connector = fb_helper->connector_info[i]->connector;
                enabled[i] = drm_connector_enabled(connector, true);
                DRM_DEBUG_KMS("connector %d enabled? %s\n", connector->base.id,
-                         enabled[i] ? "yes" : "no");
+                             connector->display_info.non_desktop ? "non desktop" : enabled[i] ? "yes" : "no");
+
                any_enabled |= enabled[i];
        }