fixed intel i830 lut loading code.

Christos Zoulas christos at zoulas.com
Mon Jan 10 03:03:59 UTC 2011


Hi,

I just spent a few hours debugging and fixing the intel driver code that
caused the machine to hang while loading the lut. Since the only reference
in the net that I could find was freebsd users using the same code, and
getting bitten by the same problem, appended you'll find the fix.

Enjoy, and remember I am not subscribed to the list.

christos

Index: i830_display.c
===================================================================
RCS file: /cvsroot/xsrc/external/mit/xf86-video-intel/dist/src/i830_display.c,v
retrieving revision 1.1.1.2
retrieving revision 1.3
diff -u -r1.1.1.2 -r1.3
--- i830_display.c      9 Jun 2009 02:54:32 -0000       1.1.1.2
+++ i830_display.c      9 Jan 2011 20:25:46 -0000       1.3
@@ -1170,11 +1170,11 @@
        OUTREG(dspbase_reg, INREG(dspbase_reg));
     }
 
-    i830_crtc_load_lut(crtc);
-
     /* Give the overlay scaler a chance to enable if it's on this pipe */
     i830_crtc_dpms_video(crtc, TRUE);
 
+    i830_crtc_load_lut(crtc);
+
     /* Reenable compression if needed */
     if (i830_use_fb_compression(crtc))
        i830_enable_fb_compression(crtc);
@@ -1936,7 +1936,7 @@
     int i;
 
     /* The clocks have to be on to load the palette. */
-    if (!crtc->enabled)
+    if (!crtc->enabled || intel_crtc->dpms_mode != DPMSModeOn)
        return;
 
     for (i = 0; i < 256; i++) {



More information about the freebsd-x11 mailing list