diff options
author | Rouven Czerwinski <rouven@czerwinskis.de> | 2019-06-02 09:43:16 +0200 |
---|---|---|
committer | Rouven Czerwinski <rouven@czerwinskis.de> | 2019-06-02 09:50:40 +0200 |
commit | 96e9c0f9c8a0a6e6b215888564906475f2ba7189 (patch) | |
tree | 72308eddaededf2979fcf911f796133c95609a31 | |
parent | 6dfe238ff1e756bc51a609143d22f0659e3e89c8 (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.c | 6 |
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; } |