diff options
author | Dave Airlie <airlied@redhat.com> | 2015-09-14 10:28:34 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2015-09-24 08:08:17 +1000 |
commit | 69e5d3f893e19613486f300fd6e631810338aa4b (patch) | |
tree | 66e3e5d668b589c4ddd24f4888f9d7a256e04ee3 /drivers/gpu/drm/qxl | |
parent | 1f93e4a96c9109378204c147b3eec0d0e8100fde (diff) | |
download | op-kernel-dev-69e5d3f893e19613486f300fd6e631810338aa4b.zip op-kernel-dev-69e5d3f893e19613486f300fd6e631810338aa4b.tar.gz |
drm/qxl: only report first monitor as connected if we have no state
If the server isn't new enough to give us state, report the first
monitor as always connected, otherwise believe the server side.
Cc: stable@vger.kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/qxl')
-rw-r--r-- | drivers/gpu/drm/qxl/qxl_display.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c index 7c6225c..dd845f8 100644 --- a/drivers/gpu/drm/qxl/qxl_display.c +++ b/drivers/gpu/drm/qxl/qxl_display.c @@ -886,13 +886,15 @@ static enum drm_connector_status qxl_conn_detect( drm_connector_to_qxl_output(connector); struct drm_device *ddev = connector->dev; struct qxl_device *qdev = ddev->dev_private; - int connected; + bool connected = false; /* The first monitor is always connected */ - connected = (output->index == 0) || - (qdev->client_monitors_config && - qdev->client_monitors_config->count > output->index && - qxl_head_enabled(&qdev->client_monitors_config->heads[output->index])); + if (!qdev->client_monitors_config) { + if (output->index == 0) + connected = true; + } else + connected = qdev->client_monitors_config->count > output->index && + qxl_head_enabled(&qdev->client_monitors_config->heads[output->index]); DRM_DEBUG("#%d connected: %d\n", output->index, connected); if (!connected) |