From: Mike F. <va...@ge...> - 2012-03-16 05:21:41
|
On Friday 16 March 2012 01:05:10 Zhang, Sonic wrote: > From: Mike Frysinger [mailto:va...@ge...] >> On Thursday 15 March 2012 23:34:08 Zhang, Sonic wrote: >>> From: Mike Frysinger [mailto:va...@ge...] >>>> On Thursday 15 March 2012 05:23:50 Wu, Aaron wrote: >>>>> Old image of last application would retain for a while when >>>>> starting a new application, this patch clear the frambuffer before >>>>> displaying every time the fb is opened. >>>> >>>> i'm not sure the behavior you describe is wrong. in fact, i'm pretty >>>> sure it sounds correct. if an app writes an image to the framebuffer >>>> and then quits, that image should stay there indefinitely until >>>> something else opens the framebuffer and draws their own image. >>> >>> Before the second application draws its own image, the image of last >>> application has already been displayed on the LCD when the second >>> application opens the FB device(PPI is enabled when it is opened). >>> This is not a correct behavior. >> >> sure it is. if the app wants to clear the screen, it can do so. generally >> it's going to anyways by drawing an entire frame. having the frame buffer >> driver always clear the screen introduces wasted memory overhead as it >> does the memset(), and user-visible jank as the device transitions from an >> initial splash screen to the main userspace app. >> >> this is a policy decision that doesn't really belong in kernel space. and >> if it did, it should be agreed upon by all frame buffer users and not just >> changing a few drivers. > > How can the application clean the screen before it opens the FB device? why does it need to be before open ? if the kernel does the memset or userspace does the memset, the frame still gets cleared. in looking at the blackfin framebuffer drivers, i'm not sure they're correct. i don't think the PPI/DMA should be shutdown when the last user space client closes it. fb_release is for releasing all resources when tearing down the driver, and fb_blank is runtime management (turning off vsync/hsync and powering down the screen). -mike |