diff options
author | Dave Airlie <airlied@redhat.com> | 2015-09-14 10:28:34 +1000 |
---|---|---|
committer | Jiri Slaby <jslaby@suse.cz> | 2015-10-28 16:37:53 +0100 |
commit | 95b8eca09144b18187d8254c0aa88ccdbf1cc129 (patch) | |
tree | 357f51ec048c5508547c9f19627e597568ec0857 /drivers | |
parent | 7c12a537ab0f9472888077901307f8a6492620e0 (diff) | |
download | linux-stable-95b8eca09144b18187d8254c0aa88ccdbf1cc129.tar.gz linux-stable-95b8eca09144b18187d8254c0aa88ccdbf1cc129.tar.bz2 linux-stable-95b8eca09144b18187d8254c0aa88ccdbf1cc129.zip |
drm/qxl: only report first monitor as connected if we have no state
commit 69e5d3f893e19613486f300fd6e631810338aa4b upstream.
If the server isn't new enough to give us state, report the first
monitor as always connected, otherwise believe the server side.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Diffstat (limited to 'drivers')
-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 ea0904875c74..9f4d1f71a995 100644 --- a/drivers/gpu/drm/qxl/qxl_display.c +++ b/drivers/gpu/drm/qxl/qxl_display.c @@ -799,13 +799,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("\n"); return connected ? connector_status_connected |