From 96e9c0f9c8a0a6e6b215888564906475f2ba7189 Mon Sep 17 00:00:00 2001 From: Rouven Czerwinski Date: Sun, 2 Jun 2019 09:43:16 +0200 Subject: [PATCH] drm: legacy: issue a NULL modeset on disable The DRM subsystem needs a NULL modeset for connectors which disappear from the system to disable the hardware pipes, otherwise the pixels get rendered but are sent nowhere. The atomic backend does the equivalent by removing the properties and issuing a commit. Fixes #1706 --- backend/drm/legacy.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/backend/drm/legacy.c b/backend/drm/legacy.c index 182c7a95d..c414f4e67 100644 --- a/backend/drm/legacy.c +++ b/backend/drm/legacy.c @@ -29,6 +29,12 @@ static bool legacy_conn_enable(struct wlr_drm_backend *drm, struct wlr_drm_connector *conn, bool enable) { int ret = drmModeConnectorSetProperty(drm->fd, conn->id, conn->props.dpms, enable ? DRM_MODE_DPMS_ON : DRM_MODE_DPMS_OFF); + + if (!enable) { + drmModeSetCrtc(drm->fd, conn->crtc->id, 0, 0, 0, NULL, 0, + NULL); + } + return ret >= 0; }