xserver: Branch 'master'

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Apr 2 19:26:06 UTC 2019


 hw/xfree86/modes/xf86Crtc.c    |   10 ++++++++++
 hw/xfree86/modes/xf86Crtc.h    |    1 +
 hw/xfree86/modes/xf86RandR12.c |    5 ++++-
 3 files changed, 15 insertions(+), 1 deletion(-)

New commits:
commit 8ab80fd5057f3d954ac6dc310cc8773e9694a0b1
Author: Dave Airlie <airlied at redhat.com>
Date:   Fri Mar 29 08:44:07 2019 +1000

    xf86: set status to connected for monitors enabled in conf
    
    If the user sets Option "Enable" "TRUE" for a monitor, the X
    server will connect the connector a crtc but tell the user it
    is disconnected.
    
    However the user in this case is mutter, when it gets it's view
    of the output configuration it sees the output is disconnected
    and never sets it up again, which seems like the right thing to do.
    
    If we let the user enable a monitor, lets just set it as always
    connected.
    
    Reviewed-by: Olivier Fourdan <ofourdan at redhat.com>
    Signed-off-by: Dave Airlie <airlied at redhat.com>

diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index b3b84cc13..21daf9a01 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -552,6 +552,16 @@ xf86OutputSetMonitor(xf86OutputPtr output)
                    "Output %s has no monitor section\n", output->name);
 }
 
+Bool
+xf86OutputForceEnabled(xf86OutputPtr output)
+{
+    Bool enable;
+
+    if (xf86GetOptValBool(output->options, OPTION_ENABLE, &enable) && enable)
+        return TRUE;
+    return FALSE;
+}
+
 static Bool
 xf86OutputEnabled(xf86OutputPtr output, Bool strict)
 {
diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h
index 427c6bff4..bf3e808bc 100644
--- a/hw/xfree86/modes/xf86Crtc.h
+++ b/hw/xfree86/modes/xf86Crtc.h
@@ -1144,4 +1144,5 @@ xf86ProviderSetup(ScrnInfoPtr scrn,
 extern _X_EXPORT void
 xf86DetachAllCrtc(ScrnInfoPtr scrn);
 
+Bool xf86OutputForceEnabled(xf86OutputPtr output);
 #endif                          /* _XF86CRTC_H_ */
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index 0838dbf82..b476c07ce 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -1647,7 +1647,10 @@ xf86RandR12SetInfo12(ScreenPtr pScreen)
             RROutputSetConnection(output->randr_output, RR_Connected);
             break;
         case XF86OutputStatusDisconnected:
-            RROutputSetConnection(output->randr_output, RR_Disconnected);
+	    if (xf86OutputForceEnabled(output))
+                RROutputSetConnection(output->randr_output, RR_Connected);
+	    else
+                RROutputSetConnection(output->randr_output, RR_Disconnected);
             break;
         case XF86OutputStatusUnknown:
             RROutputSetConnection(output->randr_output, RR_UnknownConnection);


More information about the xorg-commit mailing list