Messages in this thread | | | Date | Sun, 16 Mar 2008 20:48:05 +0100 (CET) | From | Geert Uytterhoeven <> | Subject | Re: [Linux-fbdev-devel] [PATCH] i810fb: Fix console switch regression |
| |
On Sun, 16 Mar 2008, Stefan Bauer wrote: > From: Stefan Bauer <stefan.bauer@cs.tu-chemnitz.de> > > Commit eaa0ff15c30dc9799eb4d12660edb73aeb6d32c5 ("fix ! versus & precedence in > various places") introduced a regression in console switching when using > i810fb. Every 5th to 10th console switch causes 'pixel waste' - the same line > of multi-colored pixels repeated over the whole screen. > This reverts eaa0ff1 for i810_main.c. > > Signed-off-by: Stefan Bauer <stefan.bauer@cs.tu-chemnitz.de> > Cc: Antonino Daplas <adaplas@pol.net> > > --- > As I'm not subscribed to the LKML, please CC me, thanks. > > --- linux-2.6/drivers/video/i810/i810_main.c.orig > +++ linux-2.6/drivers/video/i810/i810_main.c > @@ -1476,7 +1476,7 @@ static int i810fb_cursor(struct fb_info > struct i810fb_par *par = info->par; > u8 __iomem *mmio = par->mmio_start_virtual; > > - if (!(par->dev_flags & LOCKUP)) > + if (!par->dev_flags & LOCKUP) > return -ENXIO;
However, the original expression didn't make sense, as LOCKUP is 8 and !par->dev_flags is either 0 or 1, so `!par->dev_flags & LOCKUP' is always 0.
I took a quick look at the usage of the LOCKUP flag. Apparently when a lock-up is detected, this flag is set, and the driver will fall back to software operations instead of hardware accelerated operations.
Is it possible the intended code was
if (par->dev_flags & LOCKUP) return -ENXIO;
?
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
| |