Bug 44505

Summary: complete hang when dpms is off and a program set the gamma (gnome-screensaver does both) i865g at least
Product: DRI Reporter: Alban Browaeys <prahal>
Component: DRM/IntelAssignee: Chris Wilson <chris>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: medium CC: ben, chris, daniel, jbarnes
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 42991, 44622    
Attachments:
Description Flags
check crtc active and not only enable before setting lut none

Description Alban Browaeys 2012-01-05 12:42:16 UTC
Created attachment 55189 [details]
check crtc active and not only enable before setting lut

"xset dpms force off"  then "xgamma -rgamma 2.0" brings the box down .

graphics: gen2 i865g with or without sna (2.17 and 2.16).
kernel: debian 3.0.0-1 to 3.2-rc7 (at a point before kernel were not affected).

I discoverd the issue as gnome-screensaver 3 set the dpms off while fading off thus ends up setting the gamma after dpms is off. Which hang the box (no keyboard, no network, no disk activity only a blue led and fan noise).


Attached patch fixes this issue by checking the intel_crtc->active in intel_crtc_load_lut instead of only checking for crtc->enable. (printk shows that enable is on while active is off when this dpms off mode 3 was sent to the kernel)
Comment 1 Chris Wilson 2012-01-05 12:50:18 UTC
Checking active only is probably the right approach here. I just need to explain why enabled is wrong...
Comment 2 Chris Wilson 2012-03-02 04:10:50 UTC
In linus/master, and should hit the stable trees:

commit aed3f09db39596e539f90b11a5016aea4d8442e1
Author: Alban Browaeys <prahal@yahoo.com>
Date:   Fri Feb 24 17:12:45 2012 +0000

    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 <prahal@yahoo.com>
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Cc: stable@kernel.org
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.