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