summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2015-09-14 10:28:34 +1000
committerJiri Slaby <jslaby@suse.cz>2015-10-28 16:37:53 +0100
commit95b8eca09144b18187d8254c0aa88ccdbf1cc129 (patch)
tree357f51ec048c5508547c9f19627e597568ec0857 /drivers
parent7c12a537ab0f9472888077901307f8a6492620e0 (diff)
downloadlinux-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.c12
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