aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRouven Czerwinski <rouven@czerwinskis.de>2019-06-02 09:43:16 +0200
committerRouven Czerwinski <rouven@czerwinskis.de>2019-06-02 09:50:40 +0200
commit96e9c0f9c8a0a6e6b215888564906475f2ba7189 (patch)
tree72308eddaededf2979fcf911f796133c95609a31
parent6dfe238ff1e756bc51a609143d22f0659e3e89c8 (diff)
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
-rw-r--r--backend/drm/legacy.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/backend/drm/legacy.c b/backend/drm/legacy.c
index 182c7a95..c414f4e6 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;
}