History log of /drivers/media/video/ivtv/ivtv-streams.c
Revision Date Author Comments
eb2ba855470797b20dced364f5897cc949e7ade6 02-Mar-2012 Hans Verkuil <hans.verkuil@cisco.com> [media] ivtv: simplify how the decoder controls are set up

The code was unnecessarily complex, introducing a hdl_out handler that was
not needed. Instead just add the controls to the cxhdl.hdl handler directly.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
debf80014fc1e8d02b3fd57e5fae0d315ac2cb04 15-Dec-2011 Hans Verkuil <hans.verkuil@cisco.com> [media] ivtv: implement new decoder controls

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
da8ec560e3b4e25d73c64a9e08f9f90ebfbfbf7c 24-Nov-2011 Hans Verkuil <hans.verkuil@cisco.com> [media] ivtv: implement new decoder command ioctls

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
d0c8b2d400279f7d4d530ede8c7cb66f75810007 07-Nov-2011 Hans Verkuil <hans.verkuil@cisco.com> [media] ivtv: setup per-device caps

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
61bb725ef5a646d3fc8a64e41b020a65542cdae1 12-Oct-2011 Hans Verkuil <hans.verkuil@cisco.com> [media] ivtv: remove open_id/id from the filehandle code

Instead of messing around with id's it's much easier to just compare
against a filehandle pointer.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
cdc037817cc15caf931cd3476970860d62f1985c 11-Oct-2011 Hans Verkuil <hans.verkuil@cisco.com> [media] ivtv: switch to the v4l core lock

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
7700a0d293ad8b1b1759ad06ac868f9a42fd0951 30-May-2011 Ian Armstrong <ian@iarmst.demon.co.uk> [media] ivtv: Make two ivtv_msleep_timeout calls uninterruptable

Two ivtv_msleep_timeout() calls are incorrectly flagged as interruptable. The
first is in the init sequence for a capture and is required for stable
hardware setup. The second is at the end of the capture and used to handle the
last data transfer. Failure to wait for this last transfer can result in stale
data being read at the start of the next capture.

Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
b1a873a37b6551a214ad37d1eee7654a9d65fd6e 22-Mar-2011 Hans Verkuil <hverkuil@xs4all.nl> [media] v4l2: use new flag to enable core priority handling

Rather than guess which driver supports core priority handling, require drivers
that do to explicitly set the V4L2_FL_USE_FH_PRIO flag in video_device.

Updated the core prio handling accordingly and set the flag in the three
drivers that do.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
f7b80e6919df812b4bed99a927325312a904111b 27-Jun-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: ivtv: convert to the new control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
215659d14f9dbc849ccda1655c94d710f8cc6384 12-Jun-2010 Ian Armstrong <ian@iarmst.demon.co.uk> V4L/DVB: ivtv: Automatic firmware reload

If the firmware has failed, this patch will automatically reload &
restart the card. The previous card state will be restored on a
successful restart. Firmware reload will only happen if neither the
encoder or decoder is active. If the card is busy then behaviour is as
before, returning -EIO on device access until the reload can occur. On
cards that support video output, coloured bars will be displayed during
the reload.

Andy Walls (ivtv maintainer and patch committer) made minor tweaks to
comments and the logged messages, but nothing substantial otherwise.

Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
914610e8c508224a6fb9fb501ed4bda25b340ba6 12-Jun-2010 Ian Armstrong <ian@iarmst.demon.co.uk> V4L/DVB: ivtv: Add firmare monitoring and debug mode to ignore firmware problems

>From Ian's e-mail:
When a device is opened the firmware state will be checked. If it isn't
responding then the open will fail with -EIO. Due to the nature of the
hardware, a single failed check will block everything since we don't know
exactly what has failed. A side effect of this is the blocking of debug
access, so an additional debug level has been created which allows the block
to be bypassed.

Andy Walls' modifications:
I modified Ian's patch to add a separate fw_debug module parameter to change
the driver's behavior, as opposed to using the normal debug module parameter.
The fw_debug module parameter is only available when CONFIG_VIDEO_ADV_DEBUG
is set.
I also made some minor whitespace adjustments and changed some warning
messages to be a bit more specific. s/happy/glad/g

Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
f06b9bd4c62ef93f9467a1432acf2efa84aa3456 20-Jun-2010 Ian Armstrong <ian@iarmst.demon.co.uk> V4L/DVB: ivtv: Add delay to ensure the decoder always restarts with a blank screen

Add a short delay when stopping the decoder, allowing it to settle and
preventing some unexpected interaction with other firmware commands.

Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Tested-by: Martin Dauskardt <martin.dauskardt@gmx.de>
Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
666092c679f7d9eb9f5230087f960a487fda721c 24-May-2010 Ian Armstrong <ian@iarmst.demon.co.uk> V4L/DVB: ivtv: Timing tweaks and code re-order to try and improve stability

Added small delay on device open & close to allow hardware to settle. Move yuv
register restore to before the decoder firmware call to stop playback.

Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
bd62307b20ff864c48541e46c3ee2bb9cc330f64 24-May-2010 Ian Armstrong <ian@iarmst.demon.co.uk> V4L/DVB: ivtv: Avoid accidental video standard change

For yuv video output, pass fake values to avoid firmware trying to change
video standard.

Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
4ff0790b6d8b26a4160e46bbd7bf6f4f48e391f9 14-Mar-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: ivtv: switch to new vbi subdev ops

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
092501936fc128992456a086193746cf34642815 27-Mar-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: ivtv: support the new events API

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
9a766d55b72a439b2e16ecf2ac3eb831ab25e0d3 07-Mar-2010 Ian Armstrong <ian@iarmst.demon.co.uk> V4L/DVB: ivtv: Really stop capture on device close

When a capture is started, the firmware also appears to start a secondary
stream. Unless this secondary stream is also stopped, the encoder will remain
active and not reinitialise for the next capture. Unfortunately, setting up
the video source can glitch the encoder and result in undesirable effects that
this initialisation will clear.

Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
283328c29db4463c31ee59f9ab418449cfa376b3 07-Mar-2010 Andy Walls <awalls@radix.net> V4L/DVB: ivtv: Combine capture start delays into a single delay

Combine the two 150 ms delays into a single 300 ms delay. Ian Armstrong has
noted that the delay between CX2341X_ENC_INITIALIZE_INPUT and
CX2341X_ENC_START_CAPTURE can cause problems if the temporal filter is allowed
to be enabled.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
95480f2773588eabb35ac9354d068b068ef11e70 18-Jan-2010 Andy Walls <awalls@radix.net> V4L/DVB: ivtv: Adjust msleep() delays used to prevent tinny audio and PCI bus hang

Martin Dauskardt <martin.dauskardt@gmx.de> has done extensive testing on what
values can be used and and concluded that only 300 ms total is required to
avoid bad video effects such as occasional black screen and short sync
disturbances. Furthermore he determined how this 300 ms was split between
the two msleep()s did matter very much, so he suggested 150ms/150ms as one
acceptable alternative that is implemented here.

Many thanks go to Martin.

Tested-by: Martin Dauskardt <martin.dauskardt@gmx.de>
Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
3ccc646b56a3f03029a259c6a8affd9cecc6020e 24-Dec-2009 Andy Walls <awalls@radix.net> V4L/DVB: cx25840, v4l2-subdev, ivtv, pvrusb2: Fix ivtv/cx25840 tinny audio

This change attempts to fix the ivtv tinny audio problem by keeping digitizer
to encoder audio clocks running, while disabling the video clocks as needed to
avoid unpredictable PCI bus hangs.

To accomplish this, for the cx25840 module enabling of audio streaming had
to be separated from enabling video streaming, requiring an additional
v4l2_subdev_audio_op and calls to this new op in the pvrusb2 and ivtv drivers.

The cx231xx and cx23885 driver use the cx25840 module for affecting only
video on s_stream calls, so those drivers needed no change.

The CX23418 hardware does not exhibit either the tinny audio problem nor the PCI
bus hang, so the cx18 driver did not need corresponding changes.

CX2341[56] based cards that are not using the CX2584x family of chips
do not seem to be affected by the tinny audio problem, and this change should
not affect how they are configured. It will delay their first capture by
starting by another 300 msec though.

Many thanks go to Argus <pthorn-ivtvd@styx2002.no-ip.org> and
Martin Dauskardt <martin.dauskardt@gmx.de> whose persistent testing and
investigation of this problem will hopefully fix this problem once and for all
for many ivtv users.

Reported-by: Martin Dauskardt <martin.dauskardt@gmx.de>
Reported-by: Argus <pthorn-ivtvd@styx2002.no-ip.org>
Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
38c7c036036c6260606a2a833aaad3794ca22499 27-Nov-2009 Laurent Pinchart <laurent.pinchart@ideasonboard.com> V4L/DVB (13550): v4l: Use the new video_device_node_name function

Fix all device drivers to use the new video_device_node_name function.

This also strips kernel log messages from the "/dev/" prefix, has the device
node location is a userspace policy decision unknown to the kernel.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
6b5270d21202fcf6ae16a6266fed83a30ccece7a 06-Sep-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (12725): v4l: warn when desired devnodenr is in use & add _no_warn function

Warn when the desired device node number is already in use, except when
the new video_register_device_no_warn function is called since in some
use-cases that warning is not relevant.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
581644d9c95dd04aa46267aa0b6b5619d02b02ea 19-Jun-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (12723): ivtv/cx18: replace 'kernel number' with 'device node number'.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
8ac05ae3192ce8a71fc84e4a88772cce0c09173c 07-Feb-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (10488): ivtv: cleanup naming conventions

Use consistent naming for pci_dev, v4l2_device and video_device.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
bec43661b1dc0075b7445223ba775674133b164d 30-Dec-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (10135): v4l2: introduce v4l2_file_operations.

Introduce a struct v4l2_file_operations for v4l2 drivers.

Remove the unnecessary inode argument.

Move compat32 handling (and llseek) into the v4l2-dev core: this is now
handled in the v4l2 core and no longer in the drivers themselves.

Note that this changeset reverts an earlier patch that changed the return
type of__video_ioctl2 from int to long. This change will be reinstated
later in a much improved version.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
4efc9abfde232a74ed1a4c2c1f797bdacf7bda53 23-Dec-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (9975): ivtv: set v4l2_dev instead of parent.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
67ec09fdf5e05d4670b617256c696348b5df080b 29-Nov-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (9835): ivtv/ivtvfb: convert to v4l2_device/v4l2_subdev.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
09882f0044b7cf6e506c82a5182ad768ebb660f2 18-Oct-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (9325): ivtv: switch to unlocked_ioctl.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
a8b864354e060dda1000e62d1fea7c1274581caf 04-Oct-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (9162): ivtv: fix raw/sliced VBI mixup

The service_set field was used in saa7115 and cx25840 to determine
whether raw or sliced VBI was desired. This is incorrect since it is
perfectly valid to select sliced VBI with a service_set of 0.

Instead these drivers should checked on VIDIOC_S_FMT whether the type
field matches the raw or sliced VBI type.

Updated ivtv accordingly.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
dd89601d47e2eeab7c17b25f2549444751bcffe4 04-Oct-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (9133): v4l: disconnect kernel number from minor

The v4l core creates four different video devices (video, vbi, radio, vtx)
and each has its own range of minor numbers. However, modern devices keep
increasing the number of devices that they need so a maximum of 64 video
devices will not be enough in the future. In addition this scheme makes
it very hard to add new device types.

This patch disconnects the kernel number allocation (e.g. video0, video1,
etc.) from the actual minor number (just pick the first free minor).

This allows for much more flexibility in the future. However, it does
require the use of udev. For those who cannot use udev a new CONFIG option
was created that changes the allocation scheme back to the old behavior.

Thanks to Greg KH for suggesting this approach during the 2008 LPC.

In addition, several bugs were fixed in the ivtv and cx18 drivers: these
drivers try to allocate specific kernel numbers but that scheme contained
a bug which caused what should have been e.g. video17 to appear as e.g.
video2.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
d526afe06b285006c63ed8f2eba9589f04e3283a 03-Sep-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (8648): ivtv: improve CC support

- change the work-queue to a single threaded high prio workqueue
- use DMA instead of PIO for the sliced VBI data.
- remove some incorrect tests
- increase the internal VBI capture queue size for sliced VBI packets
- ignore duplicate VBI lines

With these changes it should finally be possible to get reliable closed
captions.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
0ea6bc8d43c9ee3c5384bea184eab020927a5b2c 26-Jul-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (8523): v4l2-dev: remove unused type and type2 field from video_device

The type and type2 fields were unused and so could be removed.
Instead add a vfl_type field that contains the type of the video
device.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
5e85e732f0ed56aa97a3ba26ac2b93ffe597a208 20-Jul-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (8428): videodev: rename 'dev' to 'parent'

The field 'dev' is not the video device, but the parent of the video device.
Rename accordingly.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
dc5e42fb20229487ef11fd6fa0cdb7b7d42170f6 01-Jul-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (8171): ivtv: put back full device name, people relied on it in udev rules.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
37f89f9542c3945bddf46efc15a1b1e349af3f88 22-Jun-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (8104): cx18/ivtv: ioctl debugging improvements

Completely rely on the video_ioctl2 debugging facilities rather than
doing it ourselves.

Fill in some missing fields in ivtv with VIDIOC_G_FBUF.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3f038d80039f60e4340eaedd13369e0d2c758b80 29-May-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (8079): ivtv: Convert to video_ioctl2.

Based on an initial conversion patch from Douglas Landgraf.

Signed-off-by: Douglas Schilling Landgraf <dougsland@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
daf20d95bff81c6fc8a8d8160e620e1f9581af02 12-May-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (7885): ivtv/cx18: add compat_ioctl entries

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3f98387efa9333c5765d36e144c47c107d6ba64a 01-May-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (7854): cx18/ivtv: improve and fix out-of-memory handling

- don't show kernel backtrace when the allocation of the buffers fails: the
normal ivtv/cx18 messages are clear enough and the backtrace scares users.
- fix cleanup after the buffer allocation fails (caused kernel panic).

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
168c626cb8f85df17585af99e14403904641c7ac 16-Apr-2008 Julia Lawall <julia@diku.dk> V4L/DVB (7591): drivers/media/video: use time_before, time_before_eq, etc

The functions time_before, time_before_eq, time_after, and time_after_eq
are more robust for comparing jiffies against other values.

A simplified version of the semantic patch making this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@ change_compare_np @
expression E;
@@

(
- jiffies <= E
+ time_before_eq(jiffies,E)
|
- jiffies >= E
+ time_after_eq(jiffies,E)
|
- jiffies < E
+ time_before(jiffies,E)
|
- jiffies > E
+ time_after(jiffies,E)
)

@ include depends on change_compare_np @
@@

@ no_include depends on !include && change_compare_np @
@@

#include <linux/...>
+ #include <linux/jiffies.h>
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
14d5deba2737c59444e805c10764d58a3d73e9b2 08-Dec-2007 Richard Knutsson <ricknu-0@student.ltu.se> V4L/DVB (6776): ivtv: Some general fixes

Fix "warning: Using plain integer as NULL pointer".
Convert 'x < y ? x : y' to use min() instead.

Signed-off-by: Richard Knutsson <ricknu-0@student.ltu.se>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
77aded6ba51f01335840ce8e18b413067810b68e 05-Nov-2007 Ian Armstrong <ian@iarmst.demon.co.uk> V4L/DVB (6717): ivtv: Initial merge of video48 yuv handling into the IVTV_IOC_DMA_FRAME framework

Previously, all yuv data written to /dev/video48 had only basic support with
no double buffering to avoid display tearing.

With this patch, yuv frames written to video48 are now handled by the existing
IVTV_IOC_DMA_FRAME framework. As such, the frames are hardware buffered to
avoid tearing, and honour scaling mode & field order options. Unlike the
proprietary IVTV_IOC_DMA_FRAME ioctl, all parameters are controlled by the
V4L2 API.

Due to mpeg & yuv output restrictions being different, their V4L2 output
controls have been separated. To control the yuv output, the V4L2 calls must
be done via video48.

If the ivtvfb module is loaded, there will be one side effect to this merge.
The yuv output window will be constrained to the visible framebuffer area. In
the event that a virtual framebuffer size is being used, the limit to the
output size will be the virtual dimensions, but only the portion that falls
within the currently visible area of the framebuffer will be shown.

Like the IVTV_IOC_DMA_FRAME ioctl, the supplied frames must be padded to 720
pixels wide. However the height must only be padded up the nearest multiple
of 32. This would mean an image of 102 lines must be padded to 128. As long
as the true source image size is given, the padding will not be visible in
the final output.

Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
4be2f47054fb12a5868838770595e8d3a02e60f2 29-Oct-2007 Douglas Schilling Landgraf <dougsland@gmail.com> V4L/DVB (6483): ivtv-streams: make file_operations const

Signed-off-by: Douglas Schilling Landgraf <dougsland@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
8a75601035848e267baaae76b6e784cf1f899cd0 30-Oct-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6485): ivtv: fix compile warning

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
254d6eb1159f7398273fe35e7499f905a903f38d 14-Oct-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6347): ivtv: fix video mute when radio is used

When the radio is active the video should be muted when a capture
starts. However, this was done at the wrong time and the mute settings
were overwritten when cx2341x_update was called.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
18e16f9c954c6a931ee97584014c826255e0bdaa 13-Oct-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6342): ivtv: fix circular locking (bug 9037)

If you try to access the video device from within an udev rule,
then you get into a circular locking situation.

Changed the driver to postpone the registration of the devices until
everything else has been fully initialized, so that the newly created
device can be used immediately.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
4339ab93657cce9ca0e4678053ddcb68149d48fd 12-Oct-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6339): ivtv: set the video color to black instead of green when capturing from the radio

Thanks-to: Martin Dauskardt <md001@gmx.de>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
effa0b08633122cc63d2b7f098434d359d5767ef 25-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6117): ivtv: finish VBI related cleanup

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
559e196a56a5d518181efc1d2fefe0892f4689b4 23-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6096): ivtv: fix V4L2_ENC_CMD_STOP_AT_GOP_END support

Support for V4L2_ENC_CMD_STOP_AT_GOP_END was broken. While the driver
correctly waited for the card to capture until the GOP was complete,
afterwards the driver buffers were just flushed instead of waiting
for the application to read all the pending data.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
fd8b281a2809d2bd9119df1fbd717ab2371297cd 23-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6093): ivtv: reorganized and cleanup ivtv struct

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
33c0fcad2160bc211272295e862c6f708118d006 23-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6092): ivtv: more cleanups, merged ivtv-audio.c and ivtv-video.c into ivtv-routing.c

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
612570f2c4794bbf4e5bfa8648b61fbfc9cd8501 23-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6091): ivtv: header cleanup

- add guards
- remove unused header includes
- move card-specific stuff from ivtv-driver.h to ivtv-cards.h
- move YUV-specific stuff from ivtv-driver.h to ivtv-yuv.h

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
7c03a4488bf6d28078488c70c82357d4286cacc5 19-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6061): ivtv: add VIDIOC_OVERLAY

Add VIDIOC_OVERLAY to enable/disable the OSD. Also add the OSD state to the
log status report.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
baa4072d84e7a2e9954121c826d7bb8f1fb66b38 19-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6056): ivtv: move serialization to the fileops level

Serialization is now done on the open/close/ioctl level and also when the
read/write/poll start an encoder/decoder stream.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
313e91e824c0c595dec3740c0c87f55eea6bdb3f 19-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6054): ivtv: specify some stream sizes in kB instead of MB

Some streams (PCM, VBI decoding) do not need that much memory, so specify
the allocated memory in kB instead of MB to limit memory usage. E.g. 1 MB
is overkill for the VBI decoding stream, 64 kB is enough.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
e17a06badaedba89fad989eed409661c89a22e04 18-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6050): ivtv: retry/timer improvements

- Give up frame after three retries.
- When the last capture/decode ends, make sure to delete the dma_timer.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
de870b52be9d52c3dad76c9ea7399cb94abcaa1a 29-Jul-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6048): ivtv: fix stop stream locking

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
37093b1ea600d84fbf7252baf12eedec85ae40f1 29-Jul-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6047): ivtv: Fix scatter/gather DMA timeouts

It turns out that the cx23415/6 DMA engine cannot do scatter/gather DMA
reliably. Every so often depending on the phase of the moon and your
hardware configuration the cx2341x DMA engine simply chokes on it and
you have to reboot to get it working again.

This change replaced the scatter/gather DMA by single transfers at a time,
where the driver is now responsible for DMA-ing each buffer.

UDMA is still done using scatter/gather DMA, that will be fixed soon.

Many thanks to Mark Bryars <mark.bryars@etvinteractive.com> for discovering
the link between scatter/gather and the DMA timeouts.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3562c43be8cfd6e300508d7c33acebf3369eacd3 18-Aug-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (6045): ivtv: fix handling of INITIALIZE_INPUT fw call

The CX2341X_ENC_INITIALIZE_INPUT firmware call requires careful handling,
otherwise the computer can freeze or the top-third of the screen can start
flickering. This patch ensures that CX2341X_ENC_INITIALIZE_INPUT is called
at the right time and in the right way.

In addition the stop capture handling was improved so that the last pending
DMA transfer is also processed. Otherwise this would be the first data that
arrived when a new capture was started which is not what you want.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
7bb293849489b6cc5d6919b8c7f94cb273303e1f 22-Jul-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5919): ivtv: remove dead code

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
5a338c38ced1569a2e67e3c163505cc95429d508 22-Jul-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5918): ivtv: fix TV-out VBI handling, only reset on last close.

While decoding (MPEG or YUV) is active or when VBI output is in use, then
do not clear the VBI output of the saa7127. Only after the last user is
gone can we clear it.

This fixes the case where playback was stopped, another channel was chosen
and playback was restarted, while /dev/vbi16 was used to set the WSS
(widescreen) setting. Without this fix the WSS was reset on every stop
instead of just keeping the last value.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
201700d3544c653d453716a60976efe1987110af 19-Jul-2007 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (5865): Remove usage of HZ on ivtv driver, replacing by msecs_to_jiffies

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
90851fe9fad68db24da8cb497bad7327b97ed3d2 10-Jul-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5843): ivtv: fix missing signal_pending check.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
f885969196da6ae905162c0d1c5f0553de12cb40 10-Jul-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5842): ivtv: Add locking to ensure stream setup is atomic.

Starting an MPEG and VBI capture simultaneously caused errors in
the VBI setup: this setup was done twice when it should be done
only for the first stream that is opened.
Added a mutex to prevent this from happening.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
c43850981b5203e13747f8a696a762eb412d9394 07-Jun-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5751): Ivtv: fix ia64 printk format warnings.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
31ec13561060b748221f4e0404bcc5bf8078ccd0 03-Mar-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5379): If possible make vars/functions static.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
1a0adaf37c30e89e44d1470ef604a930999a5826 27-Apr-2007 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (5345): ivtv driver for Conexant cx23416/cx23415 MPEG encoder/decoder

It took three core maintainers, over four years of work, eight new i2c
modules, eleven new V4L2 ioctls, three new DVB video ioctls, a Sliced
VBI API, a new MPEG encoder API, an enhanced DVB video MPEG decoding
API, major YUV/OSD contributions from Ian and John, web/wiki/svn/trac
support from Axel Thimm, (hardware) support from Hauppauge, support and
assistance from the v4l-dvb people and the many, many users of ivtv to
finally make it possible to merge this driver into the kernel.
Thank you all!

Signed-off-by: Kevin Thayer <nufan_wfk@yahoo.com>
Signed-off-by: Chris Kennedy <c@groovy.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: John P Harvey <john.p.harvey@btinternet.com>
Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>