Re: radeonfb broken

From: Timothy Miller
Date: Fri Apr 16 2004 - 10:57:14 EST



Andrew Morton asked me to repost the patch for the Radeon FB off-by-one bug. I'll see about making a proper patch when I get home, but if you want to fix it quicker, I'll just tell you what to change.


In the druvers/video/radeonfb.c, there is a function called fbcon_radeon_bmove. In there, you'll see this code:

if (srcy < dsty) {
srcy += height;
dsty += height;
} else
dp_cntl |= DST_Y_TOP_TO_BOTTOM;

if (srcx < dstx) {
srcx += width;
dstx += width;
} else
dp_cntl |= DST_X_LEFT_TO_RIGHT;


Those adds need to be reduced by one. The code should look like this:


if (srcy < dsty) {
srcy += height - 1;
dsty += height - 1;
} else
dp_cntl |= DST_Y_TOP_TO_BOTTOM;

if (srcx < dstx) {
srcx += width - 1;
dstx += width - 1;
} else
dp_cntl |= DST_X_LEFT_TO_RIGHT;



This bug is in the mainline kernel, and since I have direct experience programming for the Radeon, I knew how to fix it, but I also noticed that the Red Hat kernel "2.4.18-27.7.x" has the proper fix in it.


Whenever I download a new 2.4 kernel for gentoo, I have to manually make that fix. I'm also disappointed that acceleration for Radeon has disappeared completely from 2.6.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/