Hi, Greg K-H We have found a bug in the 2D acceleration support of this patch, which will hang the whole system when scrolling the screen. This bug is not fixed currently, but there is a temp solution. On Wed, 2009-12-23 at 11:51 -0800, Greg Kroah-Hartman wrote: [...] > +config FB_SM7XX_ACCEL > + bool "Siliconmotion Acceleration functions (EXPERIMENTAL)" > + depends on FB_SM7XX && EXPERIMENTAL > + help > + This will compile the Trident frame buffer device with > + acceleration functions. [...] > diff --git a/drivers/staging/sm7xx/TODO b/drivers/staging/sm7xx/TODO > new file mode 100644 > index 0000000..1f61f5e > --- /dev/null > +++ b/drivers/staging/sm7xx/TODO > @@ -0,0 +1,10 @@ > +TODO: > +- Dual head support > +- use kernel coding style > +- checkpatch.pl clean > +- refine the code and remove unused code > +- use kernel framebuffer mode setting instead of hard code A line should be added: - Fix the bug of 2D acceleration. [...] > + > +void smtcfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect) > +{ > + struct par_info *p = (struct par_info *)info->par; > + > + if (smtc_2Dacceleration) { > + if (!rect->width || !rect->height) > + return; > + if (info->var.bits_per_pixel >= 24) > + deFillRect(p->BaseAddressInVRAM, 0, rect->dx * 3, > + rect->dy * 3, rect->width * 3, rect->height, > + rect->color); > + else > + deFillRect(p->BaseAddressInVRAM, 0, rect->dx, rect->dy, > + rect->width, rect->height, rect->color); > + } else > + cfb_fillrect(info, rect); > +} > + The above function have problems, Teddy have tried to use cfb_fillrect() instead of smtc_fillrect() as a temp solution, and now he is focusing on the root cause of this problem. (Hi, Teddy, Any new progress from you?) [...] > +static struct fb_ops smtcfb_ops = { > + .owner = THIS_MODULE, > + .fb_setcolreg = smtc_setcolreg, > + .fb_blank = smtcfb_blank, > + .fb_fillrect = smtcfb_fillrect, The above line should be changed to the following line as a temp fixup of the bug: .fb_fillrect = cfb_fillrect, > + .fb_imageblit = smtcfb_imageblit, > + .fb_copyarea = smtcfb_copyarea, > +#ifdef __BIG_ENDIAN > + .fb_read = smtcfb_read, > + .fb_write = smtcfb_write, > +#endif > + > +}; > + Should we remove the whole 2D acceleration support or use the above method as a temp fixup? Anyway, Teddy Wang from Silicon Motion is focusing on this problem. Best Regards, Wu Zhangjin _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel