Re: [PATCH 2.6.20 1/1] fbdev, mm: hecuba/E-Ink fbdev driver
flat view
From: Paul Mundt <hidden>
Date: 2007-02-20 04:41:10
Also in:
linux-mm, lkml
On Mon, Feb 19, 2007 at 11:13:04PM -0500, Jaya Kumar wrote:
On 2/18/07, Paul Mundt [off-list ref] wrote:quoted
Given that, this would have to be something that's dealt with at the subsystem level rather than in individual drivers, hence the desire to see something like this more generically visible.Hi Peter, Paul, fbdev folk, Ok. Here's what I'm thinking for abstracting this: fbdev drivers would setup fb_mmap with their own_mmap as usual. In own_mmap, they would do what they normally do and setup a vm_ops. They are free to have their own nopage handler but would set the page_mkwrite handler to be fbdev_deferred_io_mkwrite().
The vast majority of drivers do not implement ->fb_mmap(), and with proper abstraction, this should be something that's possible as a direct alternative to drivers/video/fbmem.c:fb_mmap() for the people that want it. Of course it's just as easy to do something like the sbuslib.c route and then have drivers set their ->fb_mmap() from that too.
fbdev_deferred_io_mkwrite would build up the list of touched pages and pass it to a delayed workqueue which would then mkclean on each page and then pass a copy of that page list down to a driver's callback function. The fbdev driver's callback function can then do the actual IO to the framebuffer or coalesce DMA based on the provided page list.
That works for me, though I'd prefer for struct page_list to be done with a scatterlist, then it's trivial to setup from the workqueue context without having to shuffle things around. ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV