On Tue, 13 Jul 2010 09:42:44 +0100 Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> wrote: > On Tue, 13 Jul 2010 17:30:43 +0900 > FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> wrote: > > > On Tue, 13 Jul 2010 09:20:12 +0100 > > Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> wrote: > > > > > > Why video4linux can't use the DMA API? Doing DMA with vmalloc'ed > > > > buffers is a thing that we should avoid (there are some exceptions > > > > like xfs though). > > > > > > Vmalloc is about the only API for creating virtually linear memory areas. > > > The video stuff really needs that to avoid lots of horrible special cases > > > when doing buffer processing and the like. > > > > > > Pretty much each driver using it has a pair of functions 'rvmalloc' and > > > 'rvfree' so given a proper "vmalloc_for_dma()" type interface can easily > > > be switched > > > > We already have helper functions for DMA with vmap pages, > > flush_kernel_vmap_range and invalidate_kernel_vmap_range. > > I'm not sure they help at all because the DMA user for these pages isn't > the video driver - it's the USB layer, and the USB layer isn't > specifically aware it is being passed vmap pages. Drivers can tell the USB layer that these are vmapped buffers? Adding something to struct urb? I might be totally wrong since I don't know anything about the USB layer. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>