| Age | Commit message (Collapse) | Author |
|
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
|
|
From: Robert Jarzmik <robert.jarzmik@free.fr>
All planes were PAGE aligned (ie. 4096 bytes aligned). This
is not consistent with YUV422 format, which requires Y, U
and V planes glued together. The new implementation forces
the alignement on 8 bytes (DMA requirement), which is almost
always the case (granted by width x height being a multiple
of 8).
The test cases include tests in both YUV422 and RGB565 :
- a picture of size 111 x 111 (cross RAM pages example)
- a picture of size 1023 x 4 in (under 1 RAM page)
- a picture of size 1024 x 4 in (exactly 1 RAM page)
- a picture of size 1025 x 4 in (over 1 RAM page)
- a picture of size 1280 x 1024 (many RAM pages)
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
---
drivers/media/video/pxa_camera.c | 145 +++++++++++++++++++++++++++----------
1 files changed, 106 insertions(+), 39 deletions(-)
|
|
From: Robert Jarzmik <robert.jarzmik@free.fr>
Due to DMA constraints, the DMA chain always transfers bytes
from the QCI fifos to memory in 8 bytes units. In planar
formats, that could mean 0 padding between Y and U plane
(and between U and V plane), which is against YUV422P
standard.
Therefore, a frame size is required to be a multiple of 16
(so U plane size is a multiple of 8). It is enforced in
try_fmt() and set_fmt() primitives, be aligning height then
width on 4 multiples as need be, to reach a 16 multiple.
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
---
drivers/media/video/pxa_camera.c | 32 +++++++++++++++++++++-----------
1 files changed, 21 insertions(+), 11 deletions(-)
|
|
From: Kyle McMartin <kyle@mcmartin.ca>
CUSTOMISE appears to be the one actually defined...
Signed-off-by: Kyle McMartin <kyle@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Antti Palosaari <crope@iki.fi>
Remove wrong GPIO definitions. GPIOs used by AF9015 are property of the
AF9013 demodulator and are coming from there.
Priority: normal
Signed-off-by: Antti Palosaari <crope@iki.fi>
|
|
From: Dean Anderson <dean@sensoray.com>
This patch fixes kfree problem on driver removal, fixes streamoff problem
and removes unnecessary videobuf_waiton from free_buffer function.
Signed-off-by: Dean Anderson <dean@sensoray.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Mauro Carvalho Chehab <mchehab@redhat.com>
Priority: normal
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
The tuner ops pointer wasn't set, so s_std never worked here.
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
I2C_DRIVERIDs are no longer needed with v4l2_subdev and will be removed
from the kernel soon.
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
CC: Devin Heitmueller <dheitmueller@linuxtv.org>
|
|
From: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Alexey Klimov <klimov.linux@gmail.com>
Patch removes empty open and release functions in pci and isa radio
drivers, setting them to NULL. V4L module doesn't call for them due to
previous patch.
Priority: normal
Signed-off-by: Alexey Klimov <klimov.linux@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
Patch allows v4l2_open and v4l2_release functions return 0 if open and
release driver callbacks set to NULL. This will be used in radio
drivers.
--
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Alexey Klimov <klimov.linux@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Adam Baker <linux@baker-net.org.uk>
Add documentation for the flags that have been added to VIDIOC_ENUMINPUT
to specify the sensor orientation.
Signed-off-by: Adam Baker <linux@baker-net.org.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
These callbacks are needed for omap.
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
No i2c modules are called with the V4L1 API anymore, so this can be removed.
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
Replace 'VIDIOC_' references in v4l i2c drivers by their new v4l2_subdev
callback names.
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
The audio and vbi parts still used an 'ioctl'-like interface. Replace this
with normal functions.
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
CC: Andy Walls <awalls@radix.net>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
The audio and vbi functions where still called through an ioctl-like
interface, even though this is no longer needed with v4l2-subdev. Just
change each 'case' into a proper function and call that directly.
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Adam Baker <linux@baker-net.org.uk>
The Makefile for the V4L2 spec uses bash extensions but
was using the default system shell, change it to explicitly
request bash.
Signed-off-by: Adam Baker <linux@baker-net.org.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Adam Baker <linux@baker-net.org.uk>
Add support to the SQ-905 driver to pass back to user space the
sensor orientation information obtained from the camera during init.
Modifies gspca and the videodev2.h header to create the necessary
API.
Signed-off-by: Adam Baker <linux@baker-net.org.uk>
[mchehab@redhat.com: Changed "Output is" to "Frames are" at the comments, as suggested at LMML]
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
tuner-core.c contains a hack for cx88 board to prevent probing of certain
addresses:
/* HACK: Ignore 0x6b and 0x6f on cx88 boards.
* FusionHDTV5 RT Gold has an ir receiver at 0x6b
* and an RTC at 0x6f which can get corrupted if probed.
*/
With the new i2c API this hack no longer works. So instead change the
list of tuner probe addresses in the cx88 driver itself, which is much
more clean.
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Matthias Schwarzott <zzam@gentoo.org>
Thanks to panagonov <panagonov@mail.bg> for requesting support and
testing patches.
Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Mauro Carvalho Chehab <mchehab@redhat.com>
Priority: normal
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Mauro Carvalho Chehab <mchehab@redhat.com>
Priority: normal
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
|
|
From: Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
Add support for CMOS Sensor Interface on i.MX1 and i.MXL SoCs.
Signed-off-by: Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
Signed-off-by: Darius Augulis <augulis.darius@gmail.com>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
---
arch/arm/mach-mx1/Makefile | 5 +-
arch/arm/mach-mx1/devices.c | 2 +-
arch/arm/mach-mx1/ksym_mx1.c | 18 +
arch/arm/mach-mx1/mx1_camera_fiq.S | 35 ++
arch/arm/plat-mxc/include/mach/memory.h | 8 +
arch/arm/plat-mxc/include/mach/mx1_camera.h | 35 ++
drivers/media/video/Kconfig | 13 +-
drivers/media/video/Makefile | 1 +
drivers/media/video/mx1_camera.c | 827 +++++++++++++++++++++++++++
9 files changed, 941 insertions(+), 3 deletions(-)
create mode 100644 arch/arm/mach-mx1/ksym_mx1.c
create mode 100644 arch/arm/mach-mx1/mx1_camera_fiq.S
create mode 100644 arch/arm/plat-mxc/include/mach/mx1_camera.h
create mode 100644 drivers/media/video/mx1_camera.c
|
|
From: Guennadi Liakhovetski <lg@denx.de>
With the i.MX31 transition to clkdev clock names have changed, but mistakenly
the "mx3-camera.0" has been registered with a non-NULL connection ID, which is
not necessary, since this is the only clock, used by the capture interface
driver. Fix the clock definition and the driver to use NULL as a connection ID.
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
Acked-by: Sascha Hauer <s.hauer@pengutronix.de>
---
arch/arm/mach-mx3/clock.c | 2 +-
drivers/media/video/mx3_camera.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
kernel-sync:
|
|
From: Guennadi Liakhovetski <lg@denx.de>
Use platform power hook to turn the camera on and off.
Signed-off-by: Guennadi Liakhovetski <lg@denx.de>
---
drivers/media/video/mt9t031.c | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
Remove support for the debug call VIDIOC_INT_S_AUDIO_ROUTING from cx18
and ivtv. These internal ioctls shouldn't be exposed. These were only
used through the cx18-ctl and ivtv-ctl utilities, and only when testing
a new card variant.
This cleanup allows the removal of this ioctl from v4l2-common.h.
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
CC: Andy Walls <awalls@radix.net>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
It is no longer needed to use a struct pointer as argument, since v4l2_subdev
doesn't require that ioctl-like approach anymore. Instead just pass the input,
output and config (new!) arguments directly.
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
The line-in was muted twice instead of the line-in and the cd-in.
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|
|
From: Janne Grunau <j@jannau.net>
Priority: normal
Signed-off-by: Janne Grunau <j@jannau.net>
|
|
From: Janne Grunau <j@jannau.net>
Priority: normal
Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Devin Heitmueller <devin.heitmueller@gmail.com>
|
|
From: Janne Grunau <j@jannau.net>
Priority: normal
Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Devin Heitmueller <devin.heitmueller@gmail.com>
|
|
From: Janne Grunau <j@jannau.net>
Priority: normal
Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Mike Isely <isely@pobox.com>
|
|
From: Janne Grunau <j@jannau.net>
Priority: normal
Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Thierry Merle <thierry.merle@free.fr>
|
|
From: Janne Grunau <j@jannau.net>
Priority: normal
Signed-off-by: Janne Grunau <j@jannau.net>
|
|
From: Janne Grunau <j@jannau.net>
Priority: normal
Signed-off-by: Janne Grunau <j@jannau.net>
|
|
From: Janne Grunau <j@jannau.net>
If usb_interface.dev is used as dev parameter for v4l2_device_register
v4l2_dev.name contains the v4l driver/module name and usb device and
interface instead of a simple "usb x-y".
It also matches the recommendation to set the parent devices for usb
drivers.
Priority: normal
Signed-off-by: Janne Grunau <j@jannau.net>
|
|
From: Hans Verkuil <hverkuil@xs4all.nl>
Remove intermediate v4l2_crystal_freq struct. This is no longer needed
with the v4l2_subdev API.
Priority: normal
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
|