]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 26 Feb 2013 18:32:39 +0000 (10:32 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 26 Feb 2013 18:32:39 +0000 (10:32 -0800)
added patches:
drm-i915-disable-shared-panel-fitter-for-pipe.patch

queue-3.0/drm-i915-disable-shared-panel-fitter-for-pipe.patch [new file with mode: 0644]
queue-3.0/series

diff --git a/queue-3.0/drm-i915-disable-shared-panel-fitter-for-pipe.patch b/queue-3.0/drm-i915-disable-shared-panel-fitter-for-pipe.patch
new file mode 100644 (file)
index 0000000..1474518
--- /dev/null
@@ -0,0 +1,51 @@
+From 24a1f16de97c4cf0029d9acd04be06db32208726 Mon Sep 17 00:00:00 2001
+From: Mika Kuoppala <mika.kuoppala@linux.intel.com>
+Date: Fri, 8 Feb 2013 16:35:37 +0200
+Subject: drm/i915: disable shared panel fitter for pipe
+
+From: Mika Kuoppala <mika.kuoppala@linux.intel.com>
+
+commit 24a1f16de97c4cf0029d9acd04be06db32208726 upstream.
+
+If encoder is switched off by BIOS, but the panel fitter is left on,
+we never try to turn off the panel fitter and leave it still attached
+to the pipe - which can cause blurry output elsewhere.
+
+Based on work by Chris Wilson <chris@chris-wilson.co.uk>
+
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58867
+Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
+Tested-by: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
+[danvet: Remove the redundant HAS_PCH_SPLIT check and add a tiny
+comment.]
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_display.c |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -2898,6 +2898,7 @@ static void i9xx_crtc_disable(struct drm
+       struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
+       int pipe = intel_crtc->pipe;
+       int plane = intel_crtc->plane;
++      u32 pctl;
+       if (!intel_crtc->active)
+               return;
+@@ -2914,6 +2915,13 @@ static void i9xx_crtc_disable(struct drm
+       intel_disable_plane(dev_priv, plane, pipe);
+       intel_disable_pipe(dev_priv, pipe);
++
++      /* Disable pannel fitter if it is on this pipe. */
++      pctl = I915_READ(PFIT_CONTROL);
++      if ((pctl & PFIT_ENABLE) &&
++          ((pctl & PFIT_PIPE_MASK) >> PFIT_PIPE_SHIFT) == pipe)
++              I915_WRITE(PFIT_CONTROL, 0);
++
+       intel_disable_pll(dev_priv, pipe);
+       intel_crtc->active = false;
index ab9031a1274be3897417567a427f6a74325da29a..c679f7abb743bfe106890e5a3be3b6f77eff9c24 100644 (file)
@@ -29,3 +29,4 @@ ext4-add-missing-kfree-on-error-return-path-in-add_new_gdb.patch
 sunvdc-fix-off-by-one-in-generic_request.patch
 drm-usb-bind-driver-to-correct-device.patch
 nls-improve-utf8-utf16-string-conversion-routine.patch
+drm-i915-disable-shared-panel-fitter-for-pipe.patch