From b2fb454be9036d82d6c26d8d59e484a971a9e66f Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 2 Mar 2012 12:29:49 -0500 Subject: [PATCH] drm-intel-crtc-dpms-fix.patch: Fix system hang on gen2 kit on DPMS (#730853) --- drm-intel-crtc-dpms-fix.patch | 40 +++++++++++++++++++++++++++++++++++ kernel.spec | 5 +++++ 2 files changed, 45 insertions(+) create mode 100644 drm-intel-crtc-dpms-fix.patch diff --git a/drm-intel-crtc-dpms-fix.patch b/drm-intel-crtc-dpms-fix.patch new file mode 100644 index 000000000..eb582cbec --- /dev/null +++ b/drm-intel-crtc-dpms-fix.patch @@ -0,0 +1,40 @@ +From aed3f09db39596e539f90b11a5016aea4d8442e1 Mon Sep 17 00:00:00 2001 +From: Alban Browaeys +Date: Fri, 24 Feb 2012 17:12:45 +0000 +Subject: [PATCH] drm/i915: Prevent a machine hang by checking crtc->active + before loading lut + +Before loading the lut (gamma), check the active state of intel_crtc, +otherwise at least on gen2 hang ensue. + +This is reproducible in Xorg via: + xset dpms force off +then + xgamma -rgamma 2.0 # freeze. + +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44505 +Signed-off-by: Alban Browaeys +Signed-off-by: Chris Wilson +Reviewed-by: Jesse Barnes +Cc: stable@kernel.org +Signed-off-by: Jesse Barnes +--- + drivers/gpu/drm/i915/intel_display.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c +index 4871ba0..f851db7 100644 +--- a/drivers/gpu/drm/i915/intel_display.c ++++ b/drivers/gpu/drm/i915/intel_display.c +@@ -6184,7 +6184,7 @@ void intel_crtc_load_lut(struct drm_crtc *crtc) + int i; + + /* The clocks have to be on to load the palette. */ +- if (!crtc->enabled) ++ if (!crtc->enabled || !intel_crtc->active) + return; + + /* use legacy palette for Ironlake */ +-- +1.7.7.6 + diff --git a/kernel.spec b/kernel.spec index 402cc2489..cc5497e8b 100644 --- a/kernel.spec +++ b/kernel.spec @@ -617,6 +617,7 @@ Patch1500: fix_xen_guest_on_old_EC2.patch Patch1810: drm-nouveau-updates.patch # intel drm is all merged upstream Patch1824: drm-intel-next.patch +Patch1825: drm-intel-crtc-dpms-fix.patch # hush the i915 fbc noise Patch1826: drm-i915-fbc-stfu.patch @@ -1244,6 +1245,7 @@ ApplyOptionalPatch drm-nouveau-updates.patch # Intel DRM ApplyOptionalPatch drm-intel-next.patch +ApplyPatch drm-intel-crtc-dpms-fix.patch ApplyPatch drm-i915-fbc-stfu.patch ApplyPatch linux-2.6-intel-iommu-igfx.patch @@ -1982,6 +1984,9 @@ fi # and build. %changelog +* Fri Mar 02 2012 Adam Jackson +- drm-intel-crtc-dpms-fix.patch: Fix system hang on gen2 kit on DPMS (#730853) + * Thu Mar 01 2012 Justin M. Forbes 2.6.42.9-1 - Linux 3.2.9