I am trying to create an application for the OMAP-3530 EVM (Rev.G) that captures video using V4L2 then passes buffers to a Codec Engine configured H.264 encoder on the DSP. It seems that the buffers that are allocated by the V4L2 input driver aren't contiguous, or at least aren't known to be contiguous to the VIDENC1_process method:
@8,232,116us: [+0 T:0x41165490 S:0x41164b6c] ti.sdo.ce.video1.VIDENC1 - VIDENC1_process> Enter (handle=0x48a18, inBufs=0x41164c38, outBufs=0x41164c20, inArgs=0x41164d80, outArgs=0x41164d08)
@8,232,177us: [+5 T:0x41165490 S:0x41164afc] CV - VISA_allocMsg> Allocating message for messageId=0x00024d27
@8,232,360us: [+0 T:0x41165490 S:0x41164acc] OM - Memory_getBufferPhysicalAddress> Enter(virtAddr=0x41166000, size=691200)
@8,232,421us: [+1 T:0x41165490 S:0x41164acc] OM - Memory__getPhysicalAddress> Enter(virtAddr=0x41166000, size=691200)
@8,232,452us: [+1 T:0x41165490 S:0x41164acc] OM - Memory__getPhysicalAddress> returning physAddr=0x0
@8,232,543us: [+1 T:0x41165490 S:0x41164acc] OM - Memory_getBufferPhysicalAddress> CMEM_getPhys(0x41166000) = 0x85a58000.
@8,232,604us: [+7 T:0x41165490 S:0x41164acc] OM - Memory_getBufferPhysicalAddress> ERROR: user buffer at addr=0x41166000, size=691200 is NOT contiguous
@8,232,666us: [+0 T:0x41165490 S:0x41164acc] OM - Memory_getBufferPhysicalAddress> return (0x0)
@8,232,727us: [+5 T:0x41165490 S:0x41164ae4] CV - VISA_freeMsg(0x48a18, 0x41b6e880): Freeing message with messageId=0x00024d27
@8,232,788us: [+0 T:0x41165490 S:0x41164b6c] ti.sdo.ce.video1.VIDENC1 - VIDENC1_process> Exit (handle=0x48a18, retVal=0xffffffff)
The address of the first buffer that is allocated by the V4L2 driver and mmap()'ed is the 0x41166000 shown above.
V4L2 documentation indicates that it allocates these buffers in physical memory, which seems to imply that they're contiguous. However, the VIDENC1_process call doesn't recognize them as being contiguous. Is there something I can do to flag them as known-to-be-contiguous?
I did try to use the user-ptr method for buffer handling with V4L2, but that doesn't seem to be supported in PSP-02.01.03.11.
Any other suggestions? Thanks in advance