From: Greg Kroah-Hartman Date: Tue, 15 Jan 2013 13:41:21 +0000 (-0800) Subject: 3.4-stable patches X-Git-Tag: v3.7.3~23 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4c37ccce12dcb3d1117186a7ac71489671bcc9b0;p=thirdparty%2Fkernel%2Fstable-queue.git 3.4-stable patches added patches: drm-i915-disable-cpt-phase-pointer-fdi-rx-workaround.patch kvm-ppc-44x-fix-dcr-read-write.patch --- diff --git a/queue-3.4/drm-i915-disable-cpt-phase-pointer-fdi-rx-workaround.patch b/queue-3.4/drm-i915-disable-cpt-phase-pointer-fdi-rx-workaround.patch new file mode 100644 index 00000000000..eb86199c4f9 --- /dev/null +++ b/queue-3.4/drm-i915-disable-cpt-phase-pointer-fdi-rx-workaround.patch @@ -0,0 +1,123 @@ +From 539526b4137bc0e7a8806c38c8522f226814a0e6 Mon Sep 17 00:00:00 2001 +From: Daniel Vetter +Date: Sat, 8 Dec 2012 12:58:33 +0100 +Subject: drm/i915: disable cpt phase pointer fdi rx workaround + +From: Daniel Vetter + +commit 539526b4137bc0e7a8806c38c8522f226814a0e6 upstream. + +We've originally added this in + +commit 291427f5fdadec6e4be2924172e83588880e1539 +Author: Jesse Barnes +Date: Fri Jul 29 12:42:37 2011 -0700 + + drm/i915: apply phase pointer override on SNB+ too + +and then copy-pasted it over to ivb/ppt. The w/a was originally added +for ilk/ibx in + +commit 5b2adf897146edeac6a1e438fb67b5a53dbbdf34 +Author: Jesse Barnes +Date: Thu Oct 7 16:01:15 2010 -0700 + + drm/i915: add Ironlake clock gating workaround for FDI link training + +and fixed up a bit in + +commit 6f06ce184c765fd8d50669a8d12fdd566c920859 +Author: Jesse Barnes +Date: Tue Jan 4 15:09:38 2011 -0800 + + drm/i915: set phase sync pointer override enable before setting phase sync pointer + +It turns out that this w/a isn't actually required on cpt/ppt and +positively harmful on ivb/ppt when using fdi B/C links - it results in +a black screen occasionally, with seemingfully everything working as +it should. The only failure indication I've found in the hw is that +eventually (but not right after the modeset completes) a pipe underrun +is signalled. + +Big thanks to Arthur Runyan for all the ideas for registers to check +and changes to test, otherwise I couldn't ever have tracked this down! + +Cc: "Runyan, Arthur J" +Cc: stable@vger.kernel.org +Reviewed-by: Jesse Barnes +Signed-off-by: Daniel Vetter +Signed-off-by: CAI Qian +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/intel_display.c | 31 ------------------------------- + 1 file changed, 31 deletions(-) + +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -2424,18 +2424,6 @@ static void intel_fdi_normal_train(struc + FDI_FE_ERRC_ENABLE); + } + +-static void cpt_phase_pointer_enable(struct drm_device *dev, int pipe) +-{ +- struct drm_i915_private *dev_priv = dev->dev_private; +- u32 flags = I915_READ(SOUTH_CHICKEN1); +- +- flags |= FDI_PHASE_SYNC_OVR(pipe); +- I915_WRITE(SOUTH_CHICKEN1, flags); /* once to unlock... */ +- flags |= FDI_PHASE_SYNC_EN(pipe); +- I915_WRITE(SOUTH_CHICKEN1, flags); /* then again to enable */ +- POSTING_READ(SOUTH_CHICKEN1); +-} +- + /* The FDI link training functions for ILK/Ibexpeak. */ + static void ironlake_fdi_link_train(struct drm_crtc *crtc) + { +@@ -2586,9 +2574,6 @@ static void gen6_fdi_link_train(struct d + POSTING_READ(reg); + udelay(150); + +- if (HAS_PCH_CPT(dev)) +- cpt_phase_pointer_enable(dev, pipe); +- + for (i = 0; i < 4; i++) { + reg = FDI_TX_CTL(pipe); + temp = I915_READ(reg); +@@ -2707,9 +2692,6 @@ static void ivb_manual_fdi_link_train(st + POSTING_READ(reg); + udelay(150); + +- if (HAS_PCH_CPT(dev)) +- cpt_phase_pointer_enable(dev, pipe); +- + for (i = 0; i < 4; i++) { + reg = FDI_TX_CTL(pipe); + temp = I915_READ(reg); +@@ -2819,17 +2801,6 @@ static void ironlake_fdi_pll_enable(stru + } + } + +-static void cpt_phase_pointer_disable(struct drm_device *dev, int pipe) +-{ +- struct drm_i915_private *dev_priv = dev->dev_private; +- u32 flags = I915_READ(SOUTH_CHICKEN1); +- +- flags &= ~(FDI_PHASE_SYNC_EN(pipe)); +- I915_WRITE(SOUTH_CHICKEN1, flags); /* once to disable... */ +- flags &= ~(FDI_PHASE_SYNC_OVR(pipe)); +- I915_WRITE(SOUTH_CHICKEN1, flags); /* then again to lock */ +- POSTING_READ(SOUTH_CHICKEN1); +-} + static void ironlake_fdi_disable(struct drm_crtc *crtc) + { + struct drm_device *dev = crtc->dev; +@@ -2859,8 +2830,6 @@ static void ironlake_fdi_disable(struct + I915_WRITE(FDI_RX_CHICKEN(pipe), + I915_READ(FDI_RX_CHICKEN(pipe) & + ~FDI_RX_PHASE_SYNC_POINTER_EN)); +- } else if (HAS_PCH_CPT(dev)) { +- cpt_phase_pointer_disable(dev, pipe); + } + + /* still set train pattern 1 */ diff --git a/queue-3.4/kvm-ppc-44x-fix-dcr-read-write.patch b/queue-3.4/kvm-ppc-44x-fix-dcr-read-write.patch new file mode 100644 index 00000000000..683f17a0238 --- /dev/null +++ b/queue-3.4/kvm-ppc-44x-fix-dcr-read-write.patch @@ -0,0 +1,39 @@ +From e43a028752fed049e4bd94ef895542f96d79fa74 Mon Sep 17 00:00:00 2001 +From: Alexander Graf +Date: Sat, 6 Oct 2012 03:56:35 +0200 +Subject: KVM: PPC: 44x: fix DCR read/write + +From: Alexander Graf + +commit e43a028752fed049e4bd94ef895542f96d79fa74 upstream. + +When remembering the direction of a DCR transaction, we should write +to the same variable that we interpret on later when doing vcpu_run +again. + +Signed-off-by: Alexander Graf +Signed-off-by: CAI Qian +Signed-off-by: Greg Kroah-Hartman + +--- + arch/powerpc/kvm/44x_emulate.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/arch/powerpc/kvm/44x_emulate.c ++++ b/arch/powerpc/kvm/44x_emulate.c +@@ -79,6 +79,7 @@ int kvmppc_core_emulate_op(struct kvm_ru + run->dcr.dcrn = dcrn; + run->dcr.data = 0; + run->dcr.is_write = 0; ++ vcpu->arch.dcr_is_write = 0; + vcpu->arch.io_gpr = rt; + vcpu->arch.dcr_needed = 1; + kvmppc_account_exit(vcpu, DCR_EXITS); +@@ -100,6 +101,7 @@ int kvmppc_core_emulate_op(struct kvm_ru + run->dcr.dcrn = dcrn; + run->dcr.data = kvmppc_get_gpr(vcpu, rs); + run->dcr.is_write = 1; ++ vcpu->arch.dcr_is_write = 1; + vcpu->arch.dcr_needed = 1; + kvmppc_account_exit(vcpu, DCR_EXITS); + emulated = EMULATE_DO_DCR; diff --git a/queue-3.4/series b/queue-3.4/series index 6ba87a87ef5..088725d6f65 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -107,3 +107,5 @@ xhci-avoid-dead-ports-add-roothub-port-polling.patch usb-hub-handle-claim-of-enabled-remote-wakeup-after-reset.patch xhci-handle-hs-bulk-ctrl-endpoints-that-don-t-nak.patch gfs2-test-bufdata-with-buffer-locked-and-gfs2_log_lock-held.patch +drm-i915-disable-cpt-phase-pointer-fdi-rx-workaround.patch +kvm-ppc-44x-fix-dcr-read-write.patch