Re: cfb_copyarea()
flat view
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2002-08-19 09:11:55
On Mon, 19 Aug 2002, Geert Uytterhoeven wrote:
In cfb_copyarea(), `tmp' must be unsigned long because it is used to store
unsigned long values (see patch at the end).
cfb_copyarea() also doesn't clear the bits to modify in the first and last
words of a line, e.g. it does
| last = (FB_READ(src) & start_mask);
|
| if (shift > 0)
| FB_WRITE(FB_READ(dst) | (last >> shift_right), dst);
^^^^^^^^^^^^
After this read, the bits to modify must be cleared first, before the OR!
I'm working on a version of cfb_copyarea() that fixes this and handles _all_
possible values of var.bits_per_pixel (the current code assumes
var.bits_per_pixel is a multiple of 8). Stay tuned! ^^^^^^^^^^^^^^^
Oops, actually 8, 16, or 32 only (and 24 after Antonino Daplas' patch). I also
plan on relaxing the current limitation that line_size must be a multiple of
sizeof(unsigned long).
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone? Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390