]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 12 Mar 2017 19:52:07 +0000 (20:52 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 12 Mar 2017 19:52:07 +0000 (20:52 +0100)
added patches:
drm-i915-avoid-spurious-warns-about-the-wrong-pipe-in-the-pps-code.patch
drm-i915-fix-not-finding-the-vbt-when-it-overlaps-with-opregion_asle_ext.patch
libceph-use-bug-instead-of-bug_on-1.patch

queue-4.9/drm-i915-avoid-spurious-warns-about-the-wrong-pipe-in-the-pps-code.patch [new file with mode: 0644]
queue-4.9/drm-i915-fix-not-finding-the-vbt-when-it-overlaps-with-opregion_asle_ext.patch [new file with mode: 0644]
queue-4.9/libceph-use-bug-instead-of-bug_on-1.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/drm-i915-avoid-spurious-warns-about-the-wrong-pipe-in-the-pps-code.patch b/queue-4.9/drm-i915-avoid-spurious-warns-about-the-wrong-pipe-in-the-pps-code.patch
new file mode 100644 (file)
index 0000000..23f4485
--- /dev/null
@@ -0,0 +1,57 @@
+From aa9323dd49b23932a09023012f050556de64f118 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= <ville.syrjala@linux.intel.com>
+Date: Wed, 8 Feb 2017 19:52:54 +0200
+Subject: drm/i915: Avoid spurious WARNs about the wrong pipe in the PPS code
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Ville Syrjälä <ville.syrjala@linux.intel.com>
+
+commit aa9323dd49b23932a09023012f050556de64f118 upstream.
+
+Until recently vlv_steal_power_sequencer() wasn't being called for
+normal DP ports, and hence it could assert that it should only be
+called for pipe A and B (since pipe C doesn't support eDP). However
+that changed when we started to consider normal DP ports as well when
+choosing a PPS. So we will now get spurious warnings when
+vlv_steal_power_sequencer() does get called for pipe C. Avoid this by
+moving the WARN down into vlv_detach_power_sequencer() where this
+assertion should still hold.
+
+Cc: Imre Deak <imre.deak@intel.com>
+Fixes: 9f2bdb006a7e ("drm/i915: Prevent PPS stealing from a normal DP port on VLV/CHV")
+References: https://bugs.freedesktop.org/show_bug.cgi?id=95287
+Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
+Link: http://patchwork.freedesktop.org/patch/msgid/20170208175254.10958-1-ville.syrjala@linux.intel.com
+Reviewed-by: Imre Deak <imre.deak@intel.com>
+(cherry picked from commit d158694f452252d0fef335a775aeb3eb74fe7af0)
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_dp.c |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/gpu/drm/i915/intel_dp.c
++++ b/drivers/gpu/drm/i915/intel_dp.c
+@@ -2832,6 +2832,9 @@ static void vlv_detach_power_sequencer(s
+       enum pipe pipe = intel_dp->pps_pipe;
+       i915_reg_t pp_on_reg = PP_ON_DELAYS(pipe);
++      if (WARN_ON(pipe != PIPE_A && pipe != PIPE_B))
++              return;
++
+       edp_panel_vdd_off_sync(intel_dp);
+       /*
+@@ -2859,9 +2862,6 @@ static void vlv_steal_power_sequencer(st
+       lockdep_assert_held(&dev_priv->pps_mutex);
+-      if (WARN_ON(pipe != PIPE_A && pipe != PIPE_B))
+-              return;
+-
+       for_each_intel_encoder(dev, encoder) {
+               struct intel_dp *intel_dp;
+               enum port port;
diff --git a/queue-4.9/drm-i915-fix-not-finding-the-vbt-when-it-overlaps-with-opregion_asle_ext.patch b/queue-4.9/drm-i915-fix-not-finding-the-vbt-when-it-overlaps-with-opregion_asle_ext.patch
new file mode 100644 (file)
index 0000000..cc41329
--- /dev/null
@@ -0,0 +1,49 @@
+From 998d75730b40afc218c059d811869abe9676b305 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Tue, 14 Feb 2017 18:12:38 +0200
+Subject: drm/i915: Fix not finding the VBT when it overlaps with OPREGION_ASLE_EXT
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit 998d75730b40afc218c059d811869abe9676b305 upstream.
+
+If there is no OPREGION_ASLE_EXT then a VBT stored in mailbox #4 may
+use the ASLE_EXT parts of the opregion. Adjust the vbt_size calculation
+for a vbt in mailbox #4 for this.
+
+This fixes the driver not finding the VBT on a jumper ezpad mini3
+cherrytrail tablet and on a ACER SW5_017 machine.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Link: http://patchwork.freedesktop.org/patch/msgid/1487088758-30050-1-git-send-email-jani.nikula@intel.com
+(cherry picked from commit dfb65e71ea2c1d97ac373cc0587dc60b3307581a)
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_opregion.c |   13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/i915/intel_opregion.c
++++ b/drivers/gpu/drm/i915/intel_opregion.c
+@@ -1031,7 +1031,18 @@ int intel_opregion_setup(struct drm_i915
+                       opregion->vbt_size = vbt_size;
+               } else {
+                       vbt = base + OPREGION_VBT_OFFSET;
+-                      vbt_size = OPREGION_ASLE_EXT_OFFSET - OPREGION_VBT_OFFSET;
++                      /*
++                       * The VBT specification says that if the ASLE ext
++                       * mailbox is not used its area is reserved, but
++                       * on some CHT boards the VBT extends into the
++                       * ASLE ext area. Allow this even though it is
++                       * against the spec, so we do not end up rejecting
++                       * the VBT on those boards (and end up not finding the
++                       * LCD panel because of this).
++                       */
++                      vbt_size = (mboxes & MBOX_ASLE_EXT) ?
++                              OPREGION_ASLE_EXT_OFFSET : OPREGION_SIZE;
++                      vbt_size -= OPREGION_VBT_OFFSET;
+                       if (intel_bios_is_valid_vbt(vbt, vbt_size)) {
+                               DRM_DEBUG_KMS("Found valid VBT in ACPI OpRegion (Mailbox #4)\n");
+                               opregion->vbt = vbt;
diff --git a/queue-4.9/libceph-use-bug-instead-of-bug_on-1.patch b/queue-4.9/libceph-use-bug-instead-of-bug_on-1.patch
new file mode 100644 (file)
index 0000000..70ee6b5
--- /dev/null
@@ -0,0 +1,38 @@
+From d24cdcd3e40a6825135498e11c20c7976b9bf545 Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Mon, 16 Jan 2017 12:06:09 +0100
+Subject: libceph: use BUG() instead of BUG_ON(1)
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+commit d24cdcd3e40a6825135498e11c20c7976b9bf545 upstream.
+
+I ran into this compile warning, which is the result of BUG_ON(1)
+not always leading to the compiler treating the code path as
+unreachable:
+
+    include/linux/ceph/osdmap.h: In function 'ceph_can_shift_osds':
+    include/linux/ceph/osdmap.h:62:1: error: control reaches end of non-void function [-Werror=return-type]
+
+Using BUG() here avoids the warning.
+
+Signed-off-by: Arnd Bergmann <arnd@arndb.de>
+Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
+Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ include/linux/ceph/osdmap.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/linux/ceph/osdmap.h
++++ b/include/linux/ceph/osdmap.h
+@@ -57,7 +57,7 @@ static inline bool ceph_can_shift_osds(s
+       case CEPH_POOL_TYPE_EC:
+               return false;
+       default:
+-              BUG_ON(1);
++              BUG();
+       }
+ }
index ae7dfbea1d708a1ec3ad31e0c512f2b513706551..da85c161255bedf7769a0f566930c5e9278c0623 100644 (file)
@@ -52,3 +52,6 @@ drm-atomic-fix-an-error-code-in-mode_fixup.patch
 drm-i915-gvt-disable-access-to-stolen-memory-as-a-guest.patch
 drm-cancel-drm_fb_helper_dirty_work-on-unload.patch
 drm-cancel-drm_fb_helper_resume_work-on-unload.patch
+drm-i915-avoid-spurious-warns-about-the-wrong-pipe-in-the-pps-code.patch
+drm-i915-fix-not-finding-the-vbt-when-it-overlaps-with-opregion_asle_ext.patch
+libceph-use-bug-instead-of-bug_on-1.patch