Comment 19 for bug 293346

Revision history for this message
In , quanxian (quanxian-wang) wrote :

Jesse,
I ever provide the patch(2D) to ubuntu. The patch will be fix this bug. However it will bring others problems. :(

I doubt I change the wrong location. The original thought is we think front_buffer, back_buffer, depth_buffer is changed after resume, therefore after the resume, we need to remap it. However I put this source code in mode setting, that is means whatever you change resolution, you have to update this. It is not reasonable. Do you have some suggestion where to add this after resume or how to check the condition. I am testing to check if front_buffer, back_buffer, depth_buffer is NULL or not and then change it.

Here are the patches
--- i830_lvds.c_orig 2008-11-30 10:41:11.000000000 -0500
+++ i830_lvds.c 2008-11-30 10:41:37.000000000 -0500
@@ -537,6 +537,11 @@ i830_lvds_mode_set(xf86OutputPtr output,
     I830CrtcPrivatePtr intel_crtc = output->crtc->driver_private;
     CARD32 pfit_control;

+#ifdef XF86DRI
+ /* 945GME quirk process */
+ if (IS_I945GM(pI830) && !i830_update_dri_buffers(pScrn))
+ FatalError("i830_update_dri_buffers() failed\n");
+#endif
     /* The LVDS pin pair will already have been turned on in
      * i830_crtc_mode_set since it has a large impact on the DPLL settings.
      */

I