From 5aadaac9499c71ebf88c0e5fc658d9d56c8a7e16 Mon Sep 17 00:00:00 2001 From: Andres Rodriguez Date: Fri, 6 Sep 2019 18:32:44 -0400 Subject: [PATCH] xf86: Disable unused crtc functions when a lease is revoked This fixes 'non-desktop' displays staying powered on after their lease has been revoked. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111620 Cc: Keith Packard Signed-off-by: Andres Rodriguez --- hw/xfree86/modes/xf86RandR12.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index 34f2652bf..f220ef192 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -2226,6 +2226,7 @@ xf86CrtcLeaseTerminated(RRLeasePtr lease) { int c; int o; + ScrnInfoPtr scrn = xf86ScreenToScrn(lease->screen); RRLeaseTerminated(lease); /* @@ -2256,6 +2257,10 @@ xf86CrtcLeaseTerminated(RRLeasePtr lease) xf86CrtcCheckReset(crtc); } } + + /* Power off if necessary */ + xf86DisableUnusedFunctions(scrn); + RRLeaseFree(lease); }