From 5a4536c86669ed039ed85801d324121fd7c92b37 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sat, 17 Oct 2015 13:33:06 -0700 Subject: [PATCH] 3.14-stable patches added patches: drm-qxl-only-report-first-monitor-as-connected-if-we-have-no-state.patch drm-qxl-recreate-the-primary-surface-when-the-bo-is-not-primary.patch drm-reject-dri1-hw-lock-ioctl-functions-for-kms-drivers.patch --- ...tor-as-connected-if-we-have-no-state.patch | 42 ++++++++++++++++ ...y-surface-when-the-bo-is-not-primary.patch | 36 ++++++++++++++ ...lock-ioctl-functions-for-kms-drivers.patch | 49 +++++++++++++++++++ queue-3.14/series | 3 ++ 4 files changed, 130 insertions(+) create mode 100644 queue-3.14/drm-qxl-only-report-first-monitor-as-connected-if-we-have-no-state.patch create mode 100644 queue-3.14/drm-qxl-recreate-the-primary-surface-when-the-bo-is-not-primary.patch create mode 100644 queue-3.14/drm-reject-dri1-hw-lock-ioctl-functions-for-kms-drivers.patch diff --git a/queue-3.14/drm-qxl-only-report-first-monitor-as-connected-if-we-have-no-state.patch b/queue-3.14/drm-qxl-only-report-first-monitor-as-connected-if-we-have-no-state.patch new file mode 100644 index 00000000000..027362e101a --- /dev/null +++ b/queue-3.14/drm-qxl-only-report-first-monitor-as-connected-if-we-have-no-state.patch @@ -0,0 +1,42 @@ +From 69e5d3f893e19613486f300fd6e631810338aa4b Mon Sep 17 00:00:00 2001 +From: Dave Airlie +Date: Mon, 14 Sep 2015 10:28:34 +1000 +Subject: drm/qxl: only report first monitor as connected if we have no state + +From: Dave Airlie + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/qxl/qxl_display.c | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +--- 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_con + 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) diff --git a/queue-3.14/drm-qxl-recreate-the-primary-surface-when-the-bo-is-not-primary.patch b/queue-3.14/drm-qxl-recreate-the-primary-surface-when-the-bo-is-not-primary.patch new file mode 100644 index 00000000000..61a0c3bd0fe --- /dev/null +++ b/queue-3.14/drm-qxl-recreate-the-primary-surface-when-the-bo-is-not-primary.patch @@ -0,0 +1,36 @@ +From 8d0d94015e96b8853c4f7f06eac3f269e1b3d866 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= +Date: Thu, 24 Sep 2015 15:18:34 +0200 +Subject: drm/qxl: recreate the primary surface when the bo is not primary +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= + +commit 8d0d94015e96b8853c4f7f06eac3f269e1b3d866 upstream. + +When disabling/enabling a crtc the primary area must be updated +independently of which crtc has been disabled/enabled. + +Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1264735 + +Signed-off-by: Fabiano Fidêncio +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/qxl/qxl_display.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/gpu/drm/qxl/qxl_display.c ++++ b/drivers/gpu/drm/qxl/qxl_display.c +@@ -552,7 +552,7 @@ static int qxl_crtc_mode_set(struct drm_ + adjusted_mode->hdisplay, + adjusted_mode->vdisplay); + +- if (qcrtc->index == 0) ++ if (bo->is_primary == false) + recreate_primary = true; + + if (bo->surf.stride * bo->surf.height > qdev->vram_size) { diff --git a/queue-3.14/drm-reject-dri1-hw-lock-ioctl-functions-for-kms-drivers.patch b/queue-3.14/drm-reject-dri1-hw-lock-ioctl-functions-for-kms-drivers.patch new file mode 100644 index 00000000000..b584f93cd72 --- /dev/null +++ b/queue-3.14/drm-reject-dri1-hw-lock-ioctl-functions-for-kms-drivers.patch @@ -0,0 +1,49 @@ +From da168d81b44898404d281d5dbe70154ab5f117c1 Mon Sep 17 00:00:00 2001 +From: Daniel Vetter +Date: Tue, 23 Jun 2015 11:34:21 +0200 +Subject: drm: Reject DRI1 hw lock ioctl functions for kms drivers + +From: Daniel Vetter + +commit da168d81b44898404d281d5dbe70154ab5f117c1 upstream. + +I've done some extensive history digging across libdrm, mesa and +xf86-video-{intel,nouveau,ati}. The only potential user of this with +kms drivers I could find was ttmtest, which once used drmGetLock +still. But that mistake was quickly fixed up. Even the intel xvmc +library (which otherwise was really good with using dri1 stuff in kms +mode) managed to never take the hw lock for dri2 (and hence kms). + +Hence it should be save to unconditionally disallow this. + +Cc: Peter Antoine +Reviewed-by: Peter Antoine +Signed-off-by: Daniel Vetter +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/drm_lock.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/gpu/drm/drm_lock.c ++++ b/drivers/gpu/drm/drm_lock.c +@@ -58,6 +58,9 @@ int drm_lock(struct drm_device *dev, voi + struct drm_master *master = file_priv->master; + int ret = 0; + ++ if (drm_core_check_feature(dev, DRIVER_MODESET)) ++ return -EINVAL; ++ + ++file_priv->lock_count; + + if (lock->context == DRM_KERNEL_CONTEXT) { +@@ -150,6 +153,9 @@ int drm_unlock(struct drm_device *dev, v + struct drm_lock *lock = data; + struct drm_master *master = file_priv->master; + ++ if (drm_core_check_feature(dev, DRIVER_MODESET)) ++ return -EINVAL; ++ + if (lock->context == DRM_KERNEL_CONTEXT) { + DRM_ERROR("Process %d using kernel context %d\n", + task_pid_nr(current), lock->context); diff --git a/queue-3.14/series b/queue-3.14/series index f54104452de..25ae10c2caa 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -39,3 +39,6 @@ netfilter-nf_conntrack-support-expectations-in-different-zones.patch netfilter-ctnetlink-put-back-references-to-master-ct-and-expect-objects.patch netfilter-nft_compat-skip-family-comparison-in-case-of-nfproto_unspec.patch disabling-oplocks-leases-via-module-parm-enable_oplocks-broken-for-smb3.patch +drm-qxl-only-report-first-monitor-as-connected-if-we-have-no-state.patch +drm-qxl-recreate-the-primary-surface-when-the-bo-is-not-primary.patch +drm-reject-dri1-hw-lock-ioctl-functions-for-kms-drivers.patch -- 2.47.3