|
From: James S. <jsi...@in...> - 2002-08-22 18:53:40
|
> Hi, > > In cfb_copyarea(), `tmp' must be unsigned long because it is used to store > unsigned long values (see patch at the end). Oops. This might fix the one bug I see sometimes. When I delete some characters some of the remaining characters get corrputed. > 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! Yeah!!! Will test. |