Skip to contentSkip to conversation

capture_mem limitations in OMAP ISP

DISCUSSION Michael Jones 2 participants 2 messages Jul 3, 2012 – Jul 5, 2012 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

Hi Laurent & co.,

I'm looking at the memory limitations in the omap3isp driver. 'struct isp_video' contains member 'capture_mem', which is set separately for each of our v4l2 video device nodes. The CCDC, for example, has capture_mem = 4096 * 4096 * 3 = 48MB, while the previewer and resizer each have twice that. Where do these numbers come from?

Is the CCDC incapable of DMA'ing more than 48MB into memory? I know that ISP_VIDEO_MAX_BUFFERS also limits the # of buffers, but I assume this is basically an arbitrary number so we can have a finite array of isp_video_buffer's. The 48MB, on the other hand, looks like it might have a good reason.

thanks,
Michael

MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner, Erhard Meier

#1 lore raw

Hi Michael,

Quoted 7 lines · On Tuesday 03 July 2012 11:46:33 Michael Jones wrote:

Hi Laurent & co.,

I'm looking at the memory limitations in the omap3isp driver. 'struct isp_video' contains member 'capture_mem', which is set separately for each of our v4l2 video device nodes. The CCDC, for example, has capture_mem = 4096 * 4096 * 3 = 48MB, while the previewer and resizer each have twice that. Where do these numbers come from?

That's mostly historical. When developing the driver for the N900 we set a limit to avoid putting too much pressure on the system memory, and 3x8MP buffers was considered to be enough.

We could raise the limit, remove it completely, or implement a policy mechanism to let a privileged userspace application specify limits. The later might be interesting as a core V4L2 mechanism.

Quoted 5 lines

Is the CCDC incapable of DMA'ing more than 48MB into memory? I know that ISP_VIDEO_MAX_BUFFERS also limits the # of buffers, but I assume this is basically an arbitrary number so we can have a finite array of isp_video_buffer's. The 48MB, on the other hand, looks like it might have a good reason.

Signature · 3 lines
Regards,

Laurent Pinchart