]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 17 Oct 2015 20:33:06 +0000 (13:33 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 17 Oct 2015 20:33:06 +0000 (13:33 -0700)
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

queue-3.14/drm-qxl-only-report-first-monitor-as-connected-if-we-have-no-state.patch [new file with mode: 0644]
queue-3.14/drm-qxl-recreate-the-primary-surface-when-the-bo-is-not-primary.patch [new file with mode: 0644]
queue-3.14/drm-reject-dri1-hw-lock-ioctl-functions-for-kms-drivers.patch [new file with mode: 0644]
queue-3.14/series

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 (file)
index 0000000..027362e
--- /dev/null
@@ -0,0 +1,42 @@
+From 69e5d3f893e19613486f300fd6e631810338aa4b Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+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 <airlied@redhat.com>
+
+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>
+
+---
+ 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 (file)
index 0000000..61a0c3b
--- /dev/null
@@ -0,0 +1,36 @@
+From 8d0d94015e96b8853c4f7f06eac3f269e1b3d866 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= <fidencio@redhat.com>
+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?= <fidencio@redhat.com>
+
+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 <fidencio@redhat.com>
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..b584f93
--- /dev/null
@@ -0,0 +1,49 @@
+From da168d81b44898404d281d5dbe70154ab5f117c1 Mon Sep 17 00:00:00 2001
+From: Daniel Vetter <daniel.vetter@ffwll.ch>
+Date: Tue, 23 Jun 2015 11:34:21 +0200
+Subject: drm: Reject DRI1 hw lock ioctl functions for kms drivers
+
+From: Daniel Vetter <daniel.vetter@ffwll.ch>
+
+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 <peter.antoine@intel.com>
+Reviewed-by: Peter Antoine <peter.antoine@intel.com>
+Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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);
index f54104452deb447fdd14b37a1d9a4a5296041e5f..25ae10c2caa9cb248d780f9b2f913a2b57362efa 100644 (file)
@@ -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