summaryrefslogtreecommitdiff
path: root/v4l2-apps/libv4l2util/v4l2_driver.c
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>2009-03-31 08:44:21 +0200
committerGuennadi Liakhovetski <g.liakhovetski@gmx.de>2009-03-31 08:44:21 +0200
commit25c1a20a39b9a75aaef1dc3b2bcbf3276856d915 (patch)
treebc8b50129d02cacb5ff1447895cc7a400edf6429 /v4l2-apps/libv4l2util/v4l2_driver.c
parent953d03eaa6a48726291126a512da56846b71f3ec (diff)
downloadmediapointer-dvb-s2-25c1a20a39b9a75aaef1dc3b2bcbf3276856d915.tar.gz
mediapointer-dvb-s2-25c1a20a39b9a75aaef1dc3b2bcbf3276856d915.tar.bz2
pxa_camera: Redesign DMA handling
From: Robert Jarzmik <robert.jarzmik@free.fr> The DMA transfers in pxa_camera showed some weaknesses in multiple queued buffers context : - poll/select problem The bug shows up with capture_example tool from v4l2 hg tree. The process just "stalls" on a "select timeout". - multiple buffers DMA starting When multiple buffers were queued, the DMA channels were always started right away. This is not optimal, as a special case appears when the first EOF was not yet reached, and the DMA channels were prematurely started. - Maintainability DMA code was a bit obfuscated. Rationalize the code to be easily maintainable by anyone. - DMA hot chaining DMA is not stopped anymore to queue a buffer, the buffer is queued with DMA running. As a tribute, a corner case exists where chaining happens while DMA finishes the chain, and the capture is restarted to deal with the missed link buffer. This patch attemps to address these issues / improvements. Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> --- Documentation/video4linux/pxa_camera.txt | 125 ++++++++++++ drivers/media/video/pxa_camera.c | 319 ++++++++++++++++++------------ 2 files changed, 316 insertions(+), 128 deletions(-) create mode 100644 Documentation/video4linux/pxa_camera.txt
Diffstat (limited to 'v4l2-apps/libv4l2util/v4l2_driver.c')
0 files changed, 0 insertions, 0 deletions