From: Greg Kroah-Hartman Date: Thu, 25 Oct 2012 22:31:35 +0000 (-0700) Subject: 3.0-stable patches X-Git-Tag: v3.0.49~30 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cd2508b4bffbc362aeec29f6b6c0ad7ac5312c9a;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0-stable patches added patches: drm-i915-apply-timing-generator-bug-workaround-on-cpt-and-ppt.patch media-au0828-fix-case-where-streamoff-being-called-on-stopped-stream-causes-bug.patch --- diff --git a/queue-3.0/drm-i915-apply-timing-generator-bug-workaround-on-cpt-and-ppt.patch b/queue-3.0/drm-i915-apply-timing-generator-bug-workaround-on-cpt-and-ppt.patch new file mode 100644 index 00000000000..3a99a3bcab7 --- /dev/null +++ b/queue-3.0/drm-i915-apply-timing-generator-bug-workaround-on-cpt-and-ppt.patch @@ -0,0 +1,58 @@ +From 3bcf603f6d5d18bd9d076dc280de71f48add4101 Mon Sep 17 00:00:00 2001 +From: Jesse Barnes +Date: Wed, 27 Jul 2011 11:51:40 -0700 +Subject: drm/i915: apply timing generator bug workaround on CPT and PPT + +From: Jesse Barnes + +commit 3bcf603f6d5d18bd9d076dc280de71f48add4101 upstream. + +On CougarPoint and PantherPoint PCH chips, the timing generator may fail +to start after DP training completes. This is due to a bug in the +FDI autotraining detect logic (which will stall the timing generator and +re-enable it once training completes), so disable it to avoid silent DP +mode setting failures. + +Signed-off-by: Jesse Barnes +Signed-off-by: Keith Packard +Signed-off-by: Timo Aaltonen + +--- + drivers/gpu/drm/i915/i915_reg.h | 5 +++++ + drivers/gpu/drm/i915/intel_display.c | 4 ++++ + 2 files changed, 9 insertions(+) + +--- a/drivers/gpu/drm/i915/i915_reg.h ++++ b/drivers/gpu/drm/i915/i915_reg.h +@@ -3113,6 +3113,11 @@ + #define TRANS_6BPC (2<<5) + #define TRANS_12BPC (3<<5) + ++#define _TRANSA_CHICKEN2 0xf0064 ++#define _TRANSB_CHICKEN2 0xf1064 ++#define TRANS_CHICKEN2(pipe) _PIPE(pipe, _TRANSA_CHICKEN2, _TRANSB_CHICKEN2) ++#define TRANS_AUTOTRAIN_GEN_STALL_DIS (1<<31) ++ + #define SOUTH_CHICKEN2 0xc2004 + #define DPLS_EDP_PPS_FIX_DIS (1<<0) + +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -7584,6 +7584,7 @@ static void ibx_init_clock_gating(struct + static void cpt_init_clock_gating(struct drm_device *dev) + { + struct drm_i915_private *dev_priv = dev->dev_private; ++ int pipe; + + /* + * On Ibex Peak and Cougar Point, we need to disable clock +@@ -7593,6 +7594,9 @@ static void cpt_init_clock_gating(struct + I915_WRITE(SOUTH_DSPCLK_GATE_D, PCH_DPLSUNIT_CLOCK_GATE_DISABLE); + I915_WRITE(SOUTH_CHICKEN2, I915_READ(SOUTH_CHICKEN2) | + DPLS_EDP_PPS_FIX_DIS); ++ /* Without this, mode sets may fail silently on FDI */ ++ for_each_pipe(pipe) ++ I915_WRITE(TRANS_CHICKEN2(pipe), TRANS_AUTOTRAIN_GEN_STALL_DIS); + } + + static void ironlake_teardown_rc6(struct drm_device *dev) diff --git a/queue-3.0/media-au0828-fix-case-where-streamoff-being-called-on-stopped-stream-causes-bug.patch b/queue-3.0/media-au0828-fix-case-where-streamoff-being-called-on-stopped-stream-causes-bug.patch new file mode 100644 index 00000000000..83ace0249e0 --- /dev/null +++ b/queue-3.0/media-au0828-fix-case-where-streamoff-being-called-on-stopped-stream-causes-bug.patch @@ -0,0 +1,47 @@ +From a595c1ce4c9d572cf53513570b9f1a263d7867f2 Mon Sep 17 00:00:00 2001 +From: Devin Heitmueller +Date: Mon, 6 Aug 2012 22:47:03 -0300 +Subject: media: au0828: fix case where STREAMOFF being called on stopped stream causes BUG() + +From: Devin Heitmueller + +commit a595c1ce4c9d572cf53513570b9f1a263d7867f2 upstream. + +We weren't checking whether the resource was in use before calling +res_free(), so applications which called STREAMOFF on a v4l2 device that +wasn't already streaming would cause a BUG() to be hit (MythTV). + +Reported-by: Larry Finger +Reported-by: Jay Harbeston +Signed-off-by: Devin Heitmueller +Signed-off-by: Mauro Carvalho Chehab + +--- + drivers/media/video/au0828/au0828-video.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +--- a/drivers/media/video/au0828/au0828-video.c ++++ b/drivers/media/video/au0828/au0828-video.c +@@ -1697,14 +1697,18 @@ static int vidioc_streamoff(struct file + (AUVI_INPUT(i).audio_setup)(dev, 0); + } + +- videobuf_streamoff(&fh->vb_vidq); +- res_free(fh, AU0828_RESOURCE_VIDEO); ++ if (res_check(fh, AU0828_RESOURCE_VIDEO)) { ++ videobuf_streamoff(&fh->vb_vidq); ++ res_free(fh, AU0828_RESOURCE_VIDEO); ++ } + } else if (fh->type == V4L2_BUF_TYPE_VBI_CAPTURE) { + dev->vbi_timeout_running = 0; + del_timer_sync(&dev->vbi_timeout); + +- videobuf_streamoff(&fh->vb_vbiq); +- res_free(fh, AU0828_RESOURCE_VBI); ++ if (res_check(fh, AU0828_RESOURCE_VBI)) { ++ videobuf_streamoff(&fh->vb_vbiq); ++ res_free(fh, AU0828_RESOURCE_VBI); ++ } + } + + return 0; diff --git a/queue-3.0/series b/queue-3.0/series index 80b91959aff..e9e07b4bf04 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -14,3 +14,5 @@ usb-option-blacklist-net-interface-on-zte-devices.patch usb-option-add-more-zte-devices.patch cgroup-notify_on_release-may-not-be-triggered-in-some-cases.patch amd64_edac-__amd64_set_scrub_rate-avoid-overindexing-scrubrates.patch +media-au0828-fix-case-where-streamoff-being-called-on-stopped-stream-causes-bug.patch +drm-i915-apply-timing-generator-bug-workaround-on-cpt-and-ppt.patch