Hi Kassey, 2011/6/16 Kassey Lee <kassey1216@xxxxxxxxx>: > 2011/6/16 Scott Jiang <scott.jiang.linux@xxxxxxxxx>: >> 2011/6/16 Marek Szyprowski <m.szyprowski@xxxxxxxxxxx>: >>> Hello Scott, >>> >>>> Hi Marek and Laurent, >>>> >>>> I am working on v4l2 drivers for blackfin which is a no mmu soc. >>>> I found videobuf allocate memory in mmap not reqbuf, so I turn to videobuf2. >>>> But __setup_offsets() use plane offset to fill m.offset, which is >>>> always 0 for single-planar buffer. >>>> So pgoff in get_unmapped_area callback equals 0. >>>> I only found uvc handled get_unmapped_area for no mmu system, but it >>>> manages buffers itself. >>>> I really want videobuf2 to manage buffers. Please give me some advice. >>> >>> I'm not really sure if I know the differences between mmu and no-mmu >>> systems (from the device driver perspective). I assume that you are using >>> videobuf2-vmalloc allocator. Note that memory allocators/managers are well >>> separated from the videobuf2 logic. If it the current one doesn't serve you >>> well you can make your own no-mmu allocator. Later once we identify all >>> differences it might be merged with the standard one or left alone if the >>> merge is not really possible or easy. >>> >>> Best regards >>> -- >>> Marek Szyprowski >>> Samsung Poland R&D Center >>> >>> >>> >> >> Hi Marek, >> >> I used dma-contig allocator. I mean if offset is 0, I must get actual >> addr from this offset. > hi, Scott > > if it is single plane, surely the offset is 0 for plane 0 yes, it is absolutely right. > what do you mean the actual addr ? I should return virtual address of the buffer in get_unmapped_area callback. > > >> __find_plane_by_offset can do this. But it is an internal function. >> I think there should be a function called vb2_get_unmapped_area to do >> this in framework side. > are you using soc_camera ? > you can add your get_unmapped_area in soc_camera. > if not, you can add it in your v4l2_file_operations ops, while still > using videbuf2 to management your buffer. yes, I have added this method, just copy __find_plane_by_offset code. But it is ugly, it should have a vb2_get_unmapped_area like vb2_mmap. These two operations are called by one system call, so they should have a uniform looks. Regards, Scott -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html