From 0b8a4eb0a1ba3e1c26a96b3c46a02292ae4bcdf8 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sun, 12 Mar 2017 20:52:07 +0100 Subject: [PATCH] 4.9-stable patches 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 --- ...about-the-wrong-pipe-in-the-pps-code.patch | 57 +++++++++++++++++++ ...n-it-overlaps-with-opregion_asle_ext.patch | 49 ++++++++++++++++ .../libceph-use-bug-instead-of-bug_on-1.patch | 38 +++++++++++++ queue-4.9/series | 3 + 4 files changed, 147 insertions(+) create mode 100644 queue-4.9/drm-i915-avoid-spurious-warns-about-the-wrong-pipe-in-the-pps-code.patch create mode 100644 queue-4.9/drm-i915-fix-not-finding-the-vbt-when-it-overlaps-with-opregion_asle_ext.patch create mode 100644 queue-4.9/libceph-use-bug-instead-of-bug_on-1.patch 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 index 00000000000..23f448520a9 --- /dev/null +++ b/queue-4.9/drm-i915-avoid-spurious-warns-about-the-wrong-pipe-in-the-pps-code.patch @@ -0,0 +1,57 @@ +From aa9323dd49b23932a09023012f050556de64f118 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= +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ä + +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 +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ä +Link: http://patchwork.freedesktop.org/patch/msgid/20170208175254.10958-1-ville.syrjala@linux.intel.com +Reviewed-by: Imre Deak +(cherry picked from commit d158694f452252d0fef335a775aeb3eb74fe7af0) +Signed-off-by: Jani Nikula +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..cc41329ded1 --- /dev/null +++ b/queue-4.9/drm-i915-fix-not-finding-the-vbt-when-it-overlaps-with-opregion_asle_ext.patch @@ -0,0 +1,49 @@ +From 998d75730b40afc218c059d811869abe9676b305 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +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 + +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 +Signed-off-by: Jani Nikula +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..70ee6b5eb71 --- /dev/null +++ b/queue-4.9/libceph-use-bug-instead-of-bug_on-1.patch @@ -0,0 +1,38 @@ +From d24cdcd3e40a6825135498e11c20c7976b9bf545 Mon Sep 17 00:00:00 2001 +From: Arnd Bergmann +Date: Mon, 16 Jan 2017 12:06:09 +0100 +Subject: libceph: use BUG() instead of BUG_ON(1) + +From: Arnd Bergmann + +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 +Signed-off-by: Ilya Dryomov +Cc: Heinrich Schuchardt +Signed-off-by: Greg Kroah-Hartman + +--- + 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(); + } + } + diff --git a/queue-4.9/series b/queue-4.9/series index ae7dfbea1d7..da85c161255 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -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 -- 2.47.3