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@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Dave Airlie 2019-03-29 08:44:07 +10:00 committed by Adam Jackson
parent f1790339d0
commit 8ab80fd505
3 changed files with 15 additions and 1 deletions

View File

@ -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)
{

View File

@ -1144,4 +1144,5 @@ xf86ProviderSetup(ScrnInfoPtr scrn,
extern _X_EXPORT void
xf86DetachAllCrtc(ScrnInfoPtr scrn);
Bool xf86OutputForceEnabled(xf86OutputPtr output);
#endif /* _XF86CRTC_H_ */

View File

@ -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);