lkml.org 
[lkml]   [2007]   [Feb]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 2.6.20 1/1] fbdev,mm: hecuba/E-Ink fbdev driver
    On Mon, Feb 19, 2007 at 11:13:04PM -0500, Jaya Kumar wrote:
    > On 2/18/07, Paul Mundt <lethal@linux-sh.org> wrote:
    > >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.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-02-20 05:43    [W:4.478 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site