summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2015-09-14 10:28:34 +1000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-10-22 14:39:19 -0700
commitcdae6f1a2cb3785868c22e83f4d4525764c25de0 (patch)
treeea91ef53dde5352940311a50e1c9c376d5c2ee97
parent3036665506a6a96bee1a3184762b7e0424d60907 (diff)
downloadlinux-stable-cdae6f1a2cb3785868c22e83f4d4525764c25de0.tar.gz
linux-stable-cdae6f1a2cb3785868c22e83f4d4525764c25de0.tar.bz2
linux-stable-cdae6f1a2cb3785868c22e83f4d4525764c25de0.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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-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 8e3267a8bd4f..811204a76abf 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -816,13 +816,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)