Bug#608616: Mobility Radeon HD 4200: Black screen after resuming from suspend / no-hibernation

Michel Dänzer daenzer at debian.org
Mon Jan 3 04:07:13 PST 2011


On Mon, 2011-01-03 at 08:02 -0300, Margarita Manterola wrote: 
> 
> > > After looking at the changelogs and differences between the two packages, I
> > > have the sensation that the problem might be related to kms, but I really
> > > don't know enough about X to debug this myself.
> > 
> > KMS should be enabled by default in both cases, so colour me skeptical.
> > But you can try flipping it with the radeon kernel module parameter
> > 'modeset' to see if it makes any difference in either case.
> > 
> > Otherwise, apart from any possible code differences between the driver
> > package versions (haven't checked yet), 
> 
> I was refering to code differences regarding kms.  I did read the
> changes, and there were differences regarding kms in the code, that's
> why I suggested that there might be a problem there.

What changes are you referring to specifically? I can only see the
changes below, which shouldn't be relevant to your problem.


> > I assume that switching between them also requires switching
> > versions of other packages, in particular xserver-xorg-core. The
> > difference might actually be there. E.g. it might be interesting
> > rebuilding the Debian driver package against the Ubuntu X server and
> > vice versa and seeing what happens in each case. 
> 
> Uhmm... Not -core.  I did install xserver-xorg from maverick, although I'm
> not sure if it ships any interesting files.

The Ubuntu version of the driver package depends on the virtual package
xorg-video-abi-8.0, which is not provided by xserver-xorg-core in
squeeze.


diff -up -ru xserver-xorg-video-ati-6.13.1-1ubuntu5/src/r6xx_accel.c xserver-xorg-video-ati-6.13.1-2+squeeze1/src/r6xx_accel.c
--- xserver-xorg-video-ati-6.13.1-1ubuntu5/src/r6xx_accel.c     2010-07-05 00:56:14.000000000 +0200
+++ xserver-xorg-video-ati-6.13.1-2+squeeze1/src/r6xx_accel.c   2011-01-03 12:53:36.000000000 +0100
@@ -1262,9 +1262,9 @@ void r600_finish_op(ScrnInfoPtr pScrn, i

 void r600_vb_no_space(ScrnInfoPtr pScrn, int vert_size)
 {
-#ifdef XF86DRM_MODE
     RADEONInfoPtr info = RADEONPTR(pScrn);
     struct radeon_accel_state *accel_state = info->accel_state;
+#ifdef XF86DRM_MODE

     if (info->cs) {
        if (accel_state->vb_bo) {
diff -up -ru xserver-xorg-video-ati-6.13.1-1ubuntu5/src/radeon_video.c xserver-xorg-video-ati-6.13.1-2+squeeze1/src/radeon_video.c
--- xserver-xorg-video-ati-6.13.1-1ubuntu5/src/radeon_video.c   2010-07-05 00:56:14.000000000 +0200
+++ xserver-xorg-video-ati-6.13.1-2+squeeze1/src/radeon_video.c 2011-01-03 12:53:36.000000000 +0100
@@ -2216,11 +2216,15 @@ RADEONCopyData(
                swap = RADEON_HOST_DATA_SWAP_32BIT;
                break;
            }
-       } else if (bpp != pScrn->bitsPerPixel) {
-           if (bpp == 8)
+       } else {
+           switch (pScrn->bitsPerPixel) {
+           case 16:
+               swap = RADEON_HOST_DATA_SWAP_16BIT;
+               break;
+           case 32:
                swap = RADEON_HOST_DATA_SWAP_32BIT;
-           else
-               swap = RADEON_HOST_DATA_SWAP_HDW;
+               break;
+           }
        }
 #endif


-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer





More information about the xorg-driver-ati mailing list