History log of /drivers/media/video/em28xx/em28xx-video.c
Revision Date Author Comments
86d38d1e0e0f66ec3973b718d35a590e04fb32fa 13-Feb-2012 Gianluca Gennari <gennarone@gmail.com> [media] em28xx: pre-allocate DVB isoc transfer buffers

On MIPS/ARM set-top-boxes, as well as old x86 PCs, memory allocation failures
in the em28xx driver are common, due to memory fragmentation over time, that
makes impossible to allocate large chunks of coherent memory.
A typical system with 256/512 MB of RAM fails after just 1 day of uptime (see
the old thread for detailed reports and crashlogs).

In fact, the em28xx driver allocates memory for USB isoc transfers at runtime,
as opposite to the dvb-usb drivers that allocates the USB buffers when the
device is initialized, and frees them when the device is disconnected.

Moreover, in digital mode the USB isoc transfer buffers are freed, allocated
and cleared every time the user selects a new channel, wasting time and
resources.

This patch solves both problems by allocating DVB isoc transfer buffers in
em28xx_usb_probe(), and freeing them in em28xx_usb_disconnect().
In fact, the buffers size and number depend only on the max USB packet size
that is parsed from the USB descriptors in em28xx_usb_probe(), so it can
never change for a given device.

This approach makes no sense in analog mode (as the buffer size depends on
the alternate mode selected at runtime), the patch creates two separate sets
of buffers for digital and analog modes.

For digital-only devices, USB buffers are created when the device is probed
and freed when the device is disconnected.
For analog-only devices, nothing changes: isoc buffers are created at runtime.
For hybrid devices, two sets of buffers are maintained: the digital-mode
buffers are created when the device is probed, and freed when the device is
disconnected; analog-mode buffers are created/destroyed at runtime as before.
So, in analog mode, digital and analog buffers coexists at the same time: this
can be justified by the fact that digital mode is by far more commonly used
nowadays, so it makes sense to optimize the driver for this use case scenario.

The patch has been tested in the last few days on a x86 PC and a MIPS
set-top-box, with the PCTV 290e (digital only) and the Terratec Hybrid XS
(hybrid device). With the latter, I switched several times between analog and
digital mode (Kaffeine/TvTime) with no issue at all.
I unplugged/plugged the devices several times with no problem.
Also, after over 3 days of normal usage in the MPIS set-top-box, the PCTV 290e
was still up and running.

Signed-off-by: Gianluca Gennari <gennarone@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
1020d13d50d0a5bfcfc8a0a6826ed221cdf8a775 08-Jan-2012 Sascha Sommer <saschasommer@freenet.de> [media] em28xx: increase maxwidth for em2800

The MaxPacketSize for em2800 based devices is too small to capture at full resolution.
Therefore scale down when the maximum frame size is selected.
The previous workaround that simply reduced the X resolution cannot be used
because it crops a part of the input as
the em2800 can only scale down with a factor of 0.5.

reverts commits 1ca31892e and fb3de0398ab.

[mchehab@redhat.com: Fix CodingStyle]
Signed-off-by: Sascha Sommer <saschasommer@freenet.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
1c5c50685a04668a4a4431534bca804969fac3c6 16-Oct-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] em28xx: implement VIDIOC_ENUM_FRAMESIZES

Pidgin uses gstreamer (and libv4l) to work. Without implementing this ioctl,
it won't detect properly the size range, and driver will fail.

So, this patch is required, in order to use an em27xx webcam, like
Silvercrest.

The pigdin/gstreamer/libv4l needs to be fixed, as it shouldn't assume
that all drivers will implement this optional ioctl, but, at least now,
devices with em28xx have a better chance of working with pidgin.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
d56ae6fbf33ddeb7ab2ffac896229ca473a7457f 04-Oct-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] em28xx: Add VIDIOC_QUERYSTD support

Allow subdevs to return the detected standards

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
16e3d2f4fab6e001a79705fa273418afc10188f8 04-Sep-2011 Chris Rankin <rankincj@yahoo.com> [media] EM28xx - Fix memory leak on disconnect or error

Release the dev->alt_max_pkt_size buffer in all cases.

Signed-off-by: Chris Rankin <rankincj@yahoo.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
1990d50b58bef127a647005fdcada6d07081d3ef 24-Jun-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] Stop using linux/version.h on most video drivers

All the modified drivers didn't have any version increment since
Jan, 1 2011. Several of them didn't have any version increment
for a long time, even having new features and important bug fixes
happening.

As we're now filling the QUERYCAP version with the current Kernel
Release, we don't need to maintain a per-driver version control
anymore. So, let's just use the default.

In order to preserve the Kernel module version history, a
KERNEL_VERSION() macro were added to all modified drivers, and
the extraver number were incremented.

I opted to preserve the per-driver version control to a few
pwc, pvrusb2, s2255, s5p-fimc and sh_vou.

A few drivers are still using the legacy way to handle ioctl's.
So, we can't do such change on them, otherwise, they'll break.
Those are: uvc, et61x251 and sn9c102.

The rationale is that the per-driver version control seems to be
actively maintained on those.

Yet, I think that the better for them would be to just use the
default version numbering, instead of doing that by themselves.

While here, removed a few uneeded include linux/version.h

Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
25985edcedea6396277003854657b5f3cb31a628 31-Mar-2011 Lucas De Marchi <lucas.demarchi@profusion.mobi> Fix common misspellings

Fixes generated by 'codespell' and manually reviewed.

Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
fb8decfabdf841a199b297076ff9f890dee55e53 22-Feb-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] em28xx: properly handle subdev controls

Subdev controls return codes are evil, as they return -EINVAL to mean
both unsupported and invalid arguments. Due to that, we need to use a
trick to identify what controls are supported by a subdev.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
78e51566f0c56daa58f7bbe2591336b7d478c148 22-Feb-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] em28xx: Fix return value for s_ctrl

On some cases, driver returns 1. This should be OK, but qv4l2 is too
strict about return values.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
8fd0bda511406ef0e9dcce9be055d7ab931e92ba 18-Dec-2010 Hans Verkuil <hverkuil@xs4all.nl> [media] em28xx: radio_fops should also use unlocked_ioctl

em28xx uses core assisted locking, so it shouldn't use .ioctl.
The .ioctl callback was replaced by .unlocked_ioctl for video nodes,
but not for radio nodes. This is now corrected.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
3ea2b673a55cee528f83653e711d09425ed4d8b6 29-Dec-2010 Hans Verkuil <hverkuil@xs4all.nl> [media] em28xx: fix incorrect s_ctrl error code and wrong call to res_free

Calling subdevs to handle s_ctrl returned a non-zero return code even if
everything went fine.

Calling STREAMOFF if no STREAMON happened earlier would hit a BUG_ON
in res_free.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
08af245de0cf6ab5f4ed008ee2bb99273774fce0 24-Dec-2010 Hans Verkuil <hverkuil@xs4all.nl> [media] V4L: remove V4L1 compatibility mode

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
401e5f8d38f539765cf550fa76b684d10975840c 30-Sep-2010 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB: em28xx: fix a compilation warning

drivers/media/video/em28xx/em28xx-video.c: In function ‘vidioc_s_register’:
drivers/media/video/em28xx/em28xx-video.c:1617: warning: unused variable ‘rc’

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
d5906dd6564bbf59a27bf1be87743b8794b5468e 26-Sep-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: em28xx: the default std was not passed on to the subdevs

The initial em28xx std (PAL) was not passed on to the subdevs. This led to
these tvp5150 kernel log errors when running v4l2-ctl --all:

tvp5150 0-005c: VBI can't be configured without knowing number of lines

The reason was that tvp5150 was still using its own internal default: STD_ALL.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
0499a5aa777f8e56e46df362f0bb9d9d116186f9 26-Sep-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: em28xx: remove BKL

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
08bff03ed697a583612b62a6ac566bd5bce98012 20-Sep-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: videobuf: add ext_lock argument to the queue init functions

Add an ext_lock argument to the videobuf init functions. This allows
drivers to pass the vdev->lock pointer (or any other externally held lock)
to videobuf. For now all drivers just pass NULL.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
6b81bef8cde141d8d8172a35633af27e17cf487a 27-Aug-2010 Julia Lawall <julia@diku.dk> V4L/DVB: drivers/media/video/em28xx: Remove potential NULL dereference

If the NULL test is necessary, the initialization involving a dereference of
the tested value should be moved after the NULL test.

The sematic patch that fixes this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@@
type T;
expression E;
identifier i,fld;
statement S;
@@

- T i = E->fld;
+ T i;
... when != E
when != i
if (E == NULL) S
+ i = E->fld;
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2584bc4337855382d23b4abfc2e2492df6fdeb41 13-Jun-2010 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB: Fix case where fields were not at the correct start location

This patch address an arithmetic error for the case where the only remaining
content in the USB packet was the "225Axxxx" start of active video. In cases
where that happened to be at the end of the frame, we would inject it into the
videobuf (which is incorrect). This caused fields to be intermittently
rendered off by two pixels.

Thanks to Eugeniy Meshcheryakov for bringing this issue to my attention

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
0eed42e48a6292ebc96606c6a7105c69b37666d0 01-May-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: em28xx: g_tuner must set type field

The 'type' field was undefined but should be set to ANALOG_TV.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
4a61ecbd344c2349ec3b7a8db0db128135285dd7 14-Mar-2010 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB: em28xx: switch to new vbi subdev ops

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
5fee334039550bdd5efed9e69af7860a66a9de37 22-Jan-2010 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB: em28xx: rework buffer pointer tracking for offset to start of video

Rework the logic for tracking the amount of data copied to the VBI buffer, to
address problem found where the video lines are several bytes shifted to the
right (and the leading pixels in the first line rendered are garbage). This
would occur because the copy function would advance the pointer when detecting
headers, but the caller would not adjust the length actually copied.

This work was sponsored by EyeMagnet Limited.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
5a0e3ad6af8660be21ca98a971cd00f331318c05 24-Mar-2010 Tejun Heo <tj@kernel.org> include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h

percpu.h is included by sched.h and module.h and thus ends up being
included when building most .c files. percpu.h includes slab.h which
in turn includes gfp.h making everything defined by the two files
universally available and complicating inclusion dependencies.

percpu.h -> slab.h dependency is about to be removed. Prepare for
this change by updating users of gfp and slab facilities include those
headers directly instead of assuming availability. As this conversion
needs to touch large number of source files, the following script is
used as the basis of conversion.

http://userweb.kernel.org/~tj/misc/slabh-sweep.py

The script does the followings.

* Scan files for gfp and slab usages and update includes such that
only the necessary includes are there. ie. if only gfp is used,
gfp.h, if slab is used, slab.h.

* When the script inserts a new include, it looks at the include
blocks and try to put the new include such that its order conforms
to its surrounding. It's put in the include block which contains
core kernel includes, in the same order that the rest are ordered -
alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
doesn't seem to be any matching order.

* If the script can't find a place to put a new include (mostly
because the file doesn't have fitting include block), it prints out
an error message indicating which .h file needs to be added to the
file.

The conversion was done in the following steps.

1. The initial automatic conversion of all .c files updated slightly
over 4000 files, deleting around 700 includes and adding ~480 gfp.h
and ~3000 slab.h inclusions. The script emitted errors for ~400
files.

2. Each error was manually checked. Some didn't need the inclusion,
some needed manual addition while adding it to implementation .h or
embedding .c file was more appropriate for others. This step added
inclusions to around 150 files.

3. The script was run again and the output was compared to the edits
from #2 to make sure no file was left behind.

4. Several build tests were done and a couple of problems were fixed.
e.g. lib/decompress_*.c used malloc/free() wrappers around slab
APIs requiring slab.h to be added manually.

5. The script was run on all .h files but without automatically
editing them as sprinkling gfp.h and slab.h inclusions around .h
files could easily lead to inclusion dependency hell. Most gfp.h
inclusion directives were ignored as stuff from gfp.h was usually
wildly available and often used in preprocessor macros. Each
slab.h inclusion directive was examined and added manually as
necessary.

6. percpu.h was updated not to include slab.h.

7. Build test were done on the following configurations and failures
were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
distributed build env didn't work with gcov compiles) and a few
more options had to be turned off depending on archs to make things
build (like ipr on powerpc/64 which failed due to missing writeq).

* x86 and x86_64 UP and SMP allmodconfig and a custom test config.
* powerpc and powerpc64 SMP allmodconfig
* sparc and sparc64 SMP allmodconfig
* ia64 SMP allmodconfig
* s390 SMP allmodconfig
* alpha SMP allmodconfig
* um on x86_64 SMP allmodconfig

8. percpu.h modifications were reverted so that it could be applied as
a separate patch and serve as bisection point.

Given the fact that I had only a couple of failures from tests on step
6, I'm fairly confident about the coverage of this conversion patch.
If there is a breakage, it's likely to be something in one of the arch
headers which should be easily discoverable easily on most builds of
the specific arch.

Signed-off-by: Tejun Heo <tj@kernel.org>
Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
66d9cbad5330d6df30c82f10ee18b62b096b84ef 25-Nov-2009 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB (13932): em28xx: add PAL support for VBI

Make the VBI support work for PAL standards in addition to NTSC.

This work was sponsored by EyeMagnet Limited.

Thanks go out to Andy Walls for providing a CD containing test PAL/VBI captures
and to Steven Toth for providing a PVR-350 to do signal generation with.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
46b21094cee16bc7e531d7d6cd66fb5ea05065d4 10-Dec-2009 Laurent Pinchart <laurent.pinchart@ideasonboard.com> V4L/DVB (13556): v4l: Remove unneeded video_device::minor assignments

Now that the video_device registration is tested using
video_is_registered(), drivers don't need to initialize the
video_device::minor field to -1 anymore.

Remove those unneeded assignments.

[mchehab.redhat.com: removed tm6000 changes as tm6000 is not ready yet for submission even on staging]

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
50462eb065e12f45851a9959a90d46b758944552 10-Dec-2009 Laurent Pinchart <laurent.pinchart@ideasonboard.com> V4L/DVB (13555): v4l: Use video_device_node_name() instead of the minor number

Instead of using the minor number in kernel log messages, use the device
node name as returned by the video_device_node_name() function. This
makes debug, informational and error messages easier to understand for
end users.

[mchehab.redhat.com: removed tm6000 changes as tm6000 is not ready yet for submission even on staging]

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
63b0d5ad20365edf8baf96cdbb8e7faf62501286 10-Dec-2009 Laurent Pinchart <laurent.pinchart@ideasonboard.com> V4L/DVB (13554a): v4l: Use the video_drvdata function in drivers

Fix all device drivers to use the video_drvdata function instead of
maintaining a local list of minor to private data mappings. Call
video_set_drvdata to register the driver private pointer when not
already done.

Where applicable, the local list of mappings is completely removed when
it becomes unused.

[mchehab.redhat.com: removed tm6000 changes as tm6000 is not ready yet for submission even on staging]

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
f0813b4c9f7ffbeaddcba1c08a1812f7ff30e1b7 27-Nov-2009 Laurent Pinchart <laurent.pinchart@ideasonboard.com> V4L/DVB (13553): v4l: Use the video_is_registered function in device drivers

Fix all device drivers to use the video_is_registered function instead
of checking video_device::minor.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
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>
fb3de0398ab1bf270bc55f66945f82e61e50f6b6 27-Nov-2009 Mauro Carvalho Chehab <mchehab@redhat.com> em28xx: don't reduce scale to half size for em2800

Since em2800 can't support 720x480 / 720x576, the driver used to reduce
the scale to half the size on those chips. As the proper fix were
applied, reducing the maximum horizontal resolution to 640, this hack
can be removed.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
622b828ab795580903e79acb33fb44f5c9ce7b0f 05-Oct-2009 Laurent Pinchart <laurent.pinchart@ideasonboard.com> V4L/DVB (13238): v4l2_subdev: rename tuner s_standby operation to core s_power

Upcoming I2C v4l2_subdev drivers need a way to control the subdevice
power state from the core. This use case is already partially covered by
the tuner s_standby operation, but no way to explicitly come back from
the standby state is available.

Rename the tuner s_standby operation to core s_power, and fix tuner
drivers accordingly. The tuner core will call s_power(0) instead of
s_standby(). No explicit call to s_power(1) is required for tuners as
they are supposed to wake up from standby automatically.

[mchehab@redhat.com: CodingStyle fix]
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
e3ba4d34d031985366f7ea06395fa9772ff77ce6 15-Sep-2009 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB (12881): em28xx: fix codingstyle issues in em28xx-video.c

Fix some codingstyle issues introduced during the addition of em28xx VBI
support. The patch makes no functional changes other than converting a few
debug printk() statements to em28xx_isocdbg.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
891114a413f2ff8722ef4397bb6a902aab006414 11-Sep-2009 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB (12750): em28xx: fix unused variable warning

Remove unused variable from when I introduced the g_std() function.

This work was sponsored by EyeMagnet Limited.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10e01255026fb6a68b5aaa29427488ba2b35fc64 11-Sep-2009 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB (12749): em28xx: remove unneeded code that set VINCTRL register

Remove redundant call to set the vinctrl register. This eliminates any
ambiguity as to how the register is configured (since it is now always set in
em28xx_set_outfmt).

This work was sponsored by EyeMagnet Limited.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
19bf00384a6d5bbe5d7b8afbcc25772e3675d423 11-Sep-2009 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB (12748): em28xx: implement g_std v4l call

We need to implement the g_std call, or else the default norm always gets
returned, which breaks VBI capturing if you had changed the standard to NTSC
using s_std.

I had temporarily changed the default norm to NTSC so that zvbi-ntsc-cc
wouldn't choke, so now that we are returning the correct value, switch it back
to PAL as the default.

This work was sponsored by EyeMagnet Limited.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
0414614aab32d84da2bb092eb83b5e456946022d 11-Sep-2009 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB (12747): em28xx: only advertise VBI capability if supported

Change the code so we only claim to support VBI if the underlying chipset
actually has the support.

This work was sponsored by EyeMagnet Limited.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
290c0cfac9050fa2442e93f35f47e4faa4227e85 11-Sep-2009 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB (12746): em28xx: do not create /dev/vbiX device if VBI not supported

Do not create the VBI device in cases where VBI is not supported on the target
em28xx chip.

This work was sponsored by EyeMagnet Limited.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
8c873d31af868b4e340defc7053945636c8bd0e1 03-Sep-2009 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB (12744): em28xx: restructure fh/dev locking to handle both video and vbi

The current locking infrastructure didn't support having multiple fds accessing
the device (such as video and vbi). Rework the locking infrastructure,
borrowing the design from cx88.

This work was sponsored by EyeMagnet Limited.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
91f6dcec929b37a4568ddf55ef84e007d8fccc34 03-Sep-2009 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB (12743): em28xx: fix mmap_mapper with vbi

When adding support for both video and VBI, I missed the mmap ioctl. Add
the missing call.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
28abf083d356bc4ec459ded7a95b6a22a20f6c3d 01-Sep-2009 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB (12742): em28xx: add raw VBI support for NTSC

Add support for raw VBI capture for the em28xx bridge, currently only for
NTSC. Support for PAL capture to follow shortly (including the removal of
numerous hard-coded NTSC-specific sizes for capture buffers, etc).

Note that the code currently changes the default current norm from PAL to
NTSC (so that zvbi-ntsc-cc works properly). The default norm really should
be moved into a board-level parameter.

This work was sponsored by EyeMagnet Limited.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
da52a55cff643b8e0b346b9894adf5b93946040d 01-Sep-2009 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB (12741): em28xx: make video isoc stream work when VBI is enabled

Add code enabling the VBI registers for variants of the em28xx chip that
support VBI, and make sure the isoc streaming code continues to work for
the video component of the stream (note the video and vbi data arrive
intermixed on the same isoc pipe).

Note that this version just drops the actual VBI data onto the floor as
opposed to processing it. The "#ifdef 0" tags are for the videobuf code that
appears in the next patch in this series.

We created a separate version of the isoc_copy version for parsing the version
of the stream that includes VBI data. In theory, they might be able to be
merged at some point in the future, but the initial goal is to ensure that we
do not cause any regressions with devices that do not have VBI support.

This work was sponsored by EyeMagnet Limited.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
4efa2d75d4a3b86c2d47c422237c848d1f04ba58 10-Aug-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12408): em28xx: Implement g/s_register via address match

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
6c428b578b15a1dbf40832d3aeed43761940b81f 05-Aug-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12376): em28xx: fix V4L2 API compliance: don't expose audio inputs for devices without it

V4L2 API (chapter 1.5) states that:

Drivers must implement all input ioctls when the device has one
or more inputs, all output ioctls when the device has one or more outputs.
When the device has any audio inputs or outputs the driver must set the
V4L2_CAP_AUDIO flag in the struct v4l2_capability returned by the
VIDIOC_QUERYCAP ioctl.

So, devices without audio input should return -EINVAL.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
73c6f462d1d07f276e279467f311a96a2a43d9c5 29-Jul-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12345): em28xx: fix audio VIDIOC_S_CTRL adjustments on devices without ac97

Even devices without ac97 needs to call analog audio setup function, to
properly set xclk and mute/unmute.

Thanks to Angelo Cano <acano@fastmail.fm> for reporting and testing it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
a98f6af96ec5b22453054b36eaa325ebf20ea429 19-Jul-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12274): em28xx-video: better implement ac97 control ioctls

In the past, some devices with saa711x had their parameters controlled
directly inside em28xx driver, instead of using their proper module for
it.

Due to that, the ac97 controls were mixed with saa711x ones.

Older patches removed all saa711x controls, but we still need to control
ac97 devices on em28xx, since we don't have a separate v4l2 device for
it.

The proper way to address is to create a separate ac97 v4l2 device.
While we don't have it, we should clean up the code to allow having a
better view of what is part of em28xx core code and what's due to ac97
control inside it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
ed10daaeb3512165505eda8bb311edabea5cb485 19-Jul-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12273): em28xx-video: rename ac97 audio controls to better document it

As em28xx chip has nothing to do with volume/mute controls, rename those
controls to properly indicate that they control the companion AC97 chip
that it is inside the boards with this chip.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
c2a6b54a9cf08d4ffeb75d70603c4a5d03ac97ad 08-Aug-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12406): em28xx: fix: don't do image interlacing on webcams

Due to historical reasons, em28xx driver gets two consecutive frames and
fold them into an unique framing, doing interlacing. While this works
fine for TV images, this produces two bad effects with webcams:

1) webcam images are progressive. Merging two consecutive images produce
interlacing artifacts on the image;

2) since the driver needs to get two frames, it reduces the maximum
frame rate by two.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
d96ecda63f41350dc93c17ccb72ea24511f207a9 07-Aug-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12400): em28xx: Allow changing fps on webcams

em28xx doesn't have temporal scaling. However, on webcams, sensors are
capable of changing the output rate. So, VIDIOC_[G|S]_PARM ioctls should
be passed to the sensor for it to properly set frame rate.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
5569996421fa1cfc1fc0d9e683ac1def46ea985d 14-Jul-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12239): em28xx: fix webcam scaling

While trying to fix an mt9v001 webcam, I noticed that HSCALE/VSCALE do
work with em28xx + webcam. The issue is that the scaling setup depends
on the number of visible rows/cols of the input image.

With mt9v011 (Silvercrest), the resolution is 640x480. So, the scaling
is different from a normal TV image (720x480 on NTSC). This were causing
a wrong scaling and a previous patch disabled scaling.

As each sensor have their different resolution setting, the xres/yres
should be adjusted accordingly with the input sensor.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
c43221df762c33e832e8855cae77989b6bf69fa6 12-Jul-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12233): em28xx: rename is_27xx to is_webcam

Just renames the flag, to use a clearer name. Later patches will use
this flag to properly set some drivers behaviors for webcams.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
58fc1ce37aba8e6371e1ec8a90d650b1965ee6c8 03-Jul-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12171): em28xx: fix webcam usage with different output formats

Discovered the bug that were limiting the output format to just RGB565.
Now, it is possible to output image at Bayer format (the original one,
as generated by Silvercrest sensor, and two others), and also on YUY.

Adds Bayer formats also to the driver.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
ed5f1431ebeeba8cc6739e9cd905a7895b66184c 02-Jul-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12169): em28xx-video: fix VIDIOC_G_FMT and VIDIOC_ENUMFMT with webcams

Webcams have different constraints than other v4l devices. This patch
makes the format ioctls to behave better. It also fixes a bug at open()
handler, that were always reseting resolution to the maximum available
one.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
43cb9fe3291bb96390c1d188eb61c2d1581bb61e 30-Jun-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12139): em28xx: add other video formats

Add suppport for the teste RGB565 format (16 bits/pixel).
Currently, webcam support works only at RGB565, at 640x480.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
ccb83408b258f7e9f9fe763f9a7d06ebcc21134f 31-May-2009 Trent Piepho <xyzzy@speakeasy.org> V4L/DVB (11912): em28xx: Use v4l bounding/alignment function

The v4l function has a better algorithm for aligning image size.

It appears that the em2800 can only scale by 50% or 100%, i.e. the only
heights supported might be 240 and 480. In that case the old code would
set any height other than 240 to 480. Request 240 get 240, but request 239
and then you get 480. Change it to round to the nearest supported value.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
5325b4272a53b43f55b82cc369c310c2fcacdca1 02-Apr-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (11380): v4l2-subdev: change s_routing prototype

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.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
f41737ece472cd803ffb24ac9f5d6fdd1d871341 01-Apr-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (11370): v4l2-subdev: move s_std from tuner to core.

s_std didn't belong in the tuner ops. Stricly speaking it should be part of
the video ops, but it is used by audio and tuner devices as well, so it is
more efficient to make it part of the core ops.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
7c9fc9d50f97c9a6733ff1a22b6e31bcd91778e2 01-Apr-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (11368): v4l2-subdev: move s_standby from core to tuner.

s_standby is only used to put the tuner in powersaving mode, so move it
from core to tuner.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
f2cf250af156bef127433efd255abfae6aab02f6 31-Mar-2009 Douglas Schilling Landgraf <dougsland@redhat.com> V4L/DVB (11331): em28xx: convert to v4l2_subdev

Converted em28xx driver to v4l2_subdev.
Thanks to Hans Verkuil <hverkuil@xs4all.nl> for helping this conversion.

Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2bd1d9eb1c27034a77c8e1887156da72d6160ae1 04-Mar-2009 Vitaly Wool <vital@embeddedalley.com> V4L/DVB (10833): em28xx: enable Compro VideoMate ForYou sound

Compro VideoMate uses an external audio DSP chip, controlled via tvaudio
module (tda9874a). This patch improves em28xx infrastructure to support
an external audio processor and fixes the Compro VideoMate entry to work
with it.

Signed-off-by: Vitaly Wool <vital@embeddedalley.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
a1a6ee74f2c68918f2e145dccba3637eea91a52a 11-Feb-2009 Nicola Soranzo <nsoranzo@tiscali.it> V4L/DVB (10525): em28xx: Coding style fixes and a typo correction

Lots of coding style fixes and a typo correction for em28xx.

[dougsland@redhat.com: fixed a reject due to a change on em28xx-audio.c]
Signed-off-by: Nicola Soranzo <nsoranzo@tiscali.it>
Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
cb97716f3bcc3710b5dc44c01fd7450d032c74e0 20-Jan-2009 Thierry MERLE <thierry.merle@free.fr> V4L/DVB (10307): em28xx: use usb_make_path to report bus info

usb_make_path reports canonical bus info. Use it when reporting bus info
in VIDIOC_QUERYCAP.

Signed-off-by: Thierry MERLE <thierry.merle@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
07f7db4ce7b29d431553b426e0dcb720c5297a4b 21-Jan-2009 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (10291): em28xx: fix VIDIOC_G_CTRL when there is no msp34xx device.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
6e7b9ea0937eeb75fa166ef7bd22b5f3bb5676d1 19-Jan-2009 Robert Krakora <rob.krakora@messagenetsystems.com> V4L/DVB (10257): em28xx: Fix for KWorld 330U Board

Fix for KWorld 330U Board

Many thanks to Devin and Mauro!!!

Signed-off-by: Robert Krakora <rob.krakora@messagenetsystems.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
24c3c41584b9331be5e0d18d46943729a5bd2d4e 08-Jan-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (10192): em28xx: fix input selection

em28xx were trying to access the third input entry, even for boards that
don't support it.

This patch reviews the input mux selection fixing this bug and a few
other troubles, like not validating the input on one userspace ioctl.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
aecde8b53b8ee1330a5a8206200f0d6b8845a6e0 30-Dec-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (10141): v4l2: debugging API changed to match against driver name instead of ID.

Since the i2c driver ID will be removed in the near future we have to
modify the v4l2 debugging API to use the driver name instead of driver ID.

Note that this API is not used in applications other than v4l2-dbg.cpp
as it is for debugging and testing only.

Should anyone use the old VIDIOC_G_CHIP_IDENT, then this will be logged
with a warning that it is deprecated and will be removed in 2.6.30.

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>
3fbf930951462871848b5b504fa4a10ab06d2fee 30-Dec-2008 Devin Heitmueller <dheitmueller@linuxtv.org> V4L/DVB (10124): em28xx: expand output formats available

Add additional output formats, which will be useful for the Pinnacle PCTV
Ultimate 880e integration with the saa7136.

Thanks to Ray Lu from Empia for providing the em2860/em2880 datasheet.

Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2e5ef2dfc45ff1ecebb0d8657b85b3fc716db9bf 29-Dec-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9980): em28xx: simplify analog logic

Now, just two routines are enough for analog: the first one configs the analog
part and register V4L2 devices, and the second one release analog devices.

After this patch, it will be easier to transform em28xx-video into an em28xx
extension, loaded only on analog devices.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
1a23f81b7dc3115b29cff0e4f58b5dd04a6242ad 29-Dec-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9979): em28xx: move usb probe code to a proper place

em28xx-video were holding several code that are not specific to V4L2
interface.

This patch moves the core code for em28xx-core, and usb probing code
into em28xx-cards.

This opens the possibility of breaking em28xx into a core module and a
V4L2 module, loaded only on devices that have analog interfaces.

Some cleanup may be done at em28xx-cards to optimize the config code.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14983d8163c78826386404b27ee5bfc72e25a9d4 23-Dec-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9970): em28xx: Allow get/set registers for debug on i2c slave chips

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
531c98e71805b32e9ea35a218119100bbd2b7615 22-Dec-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9953): em28xx: Add suport for debugging AC97 anciliary chips

The em28xx driver can be coupled to an anciliary AC97 chip. This patch
allows read/write AC97 registers directly.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
b6070f0756fe1bccda1c8c67a6bfdfa51022b664 22-Dec-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9931): em28xx: de-obfuscate vidioc_g_ctrl logic

vidioc_g_ctrl() were using an uneeded confusing logic. Instead, use the
direct approach.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
5db0b5e1adff92dac54f2dfb1846a42501c8f7d9 22-Dec-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9930): em28xx: Fix bad locks on error condition

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
bddcf63313c6a4a85f94db092f45e31f530da691 20-Dec-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9927): em28xx: use a more standard way to specify video formats

This patch uses the same code for enumberating video formats that are
present on cx88, bttv and saa7134 drivers.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
381aaba91de9659ccb8c061d6b7248e606903374 20-Dec-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9926): em28xx: Fix a bug that were putting xc2028/3028 tuner to sleep

The changeset 78aa52a159cf introduced a bug on em28xx: buffer setup should be
awaking xc3028. Instead, since we didn't specify the tuner mode, the device
were going to sleep, due to the lack of tuner mode when asking tuner to handle
VIDIOC_S_FREQUENCY:

xc2028 0-0061: Device is Xceive 3028 version 1.0, firmware version 2.7
xc2028 0-0061: divisor= 00 00 14 d0 (freq=83.250)
xc2028 0-0061: Putting xc2028/3028 into poweroff mode.
xc2028 0-0061: Printing sleep stack trace:
Pid: 10936, comm: mplayer Tainted: P M 2.6.27.8 #1

Call Trace:
[<ffffffffa0b759ea>] xc2028_sleep+0x89/0x1ab [tuner_xc2028]
[<ffffffffa0b48fb9>] tuner_s_frequency+0xf5/0x165 [tuner]

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
efc52a94840198eb5ba68107812b879d34959dbb 17-Dec-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9912): em28xx: fix/improve em28xx locking schema

Changes/fixes on em28xx dev->lock:

- em28xx_init_dev() were unlocking without a previous lock;

- some read ioctls need to lock after the removal of KBL, since a write
may be happening at the same time an ioctl is reading;

- keep the device locked during all device initialization;

- lock/unlock while reading/writing registers.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
cf8c91c3e77cc26c43cfe6fc47e649b685736259 17-Dec-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9911): em28xx: vidioc_try_fmt_vid_cap() doesn't need any lock

vidioc_try_fmt_vid_cap() just checks if a given resolution is supported.
It doesn't touch on struct em28xx device descriptor. so, there's no need
to lock.

While there, use unlikely() for those values that aren't likely to
occur.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
29b59417c514a2c5291abb4e3a42e5245ffe6058 17-Dec-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9910): em28xx: move res_get locks to the caller routines

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
7831364f33af9bb7333f333e9a239b1dd2edea1c 17-Dec-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9909): em28xx: move dev->lock from res_free to the caller routines

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
eb6c96345d07c7c3978e77d3ad0b5c5b9e5b2faa 05-Dec-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9770): em28xx: turn off tuner when not used

em28xx devices generally get hot when xc3028 tuner is powered on. This
patch solves this by turning power off when the device is not used, at the
expense of having a higher load time, when calling a TV application.

Since firmware load happens on 1 or 2 seconds on most devices, this is not a pain.

Also, it helps to save the planet by saving some power :)

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
8c2399895dc1b5e8976884d4898e68e61ec23e54 29-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9767): em28xx: improve board description messages

Print manufacturer/product info from USB device and also card entry.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
6a18eaf61aadcd7f002ddfa26031525570e6f8b6 27-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9766): em28xx: improve probe messages

Prints usb speed used by em28xx interface. While there, fixes USB ID's
endiannes.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2fe3e2ee72ef17daad1d3769321bb7dd69a003a9 27-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9764): em28xx: Add support for suspend the device when not used

Several chips may be turned off when the device is not used, like audio,
video and dvb demods. This patch adds a gpio callback at the core
structs to allow turning off such devices.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2a29a0d770ef6f24a8fd7806655c826d45888cba 26-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9758): em28xx: replace some magic by register descriptions where known

Replaces all occurrences of em28xx_write_regs_req() and em28xx_write_reg()
used to setup register names by em28xx_write_reg().

Also, documents the register names that are known.

This patch were generated by this small perl script:

my %reg_map = (
# Register table - the same as defined on parse_em28xx.pl script
);

while (<>) {
if (m/(.*)em28xx_write_regs_req\(dev\,\s*0x00\,\s*(.*)\,\s*\"\\x(..)\",\s*1\)\;(.*)/) {
my $reg = $2;
my $val = $3;
$val =~ tr/A-f/a-f/;
$reg = $reg_map{$reg} if defined($reg_map{$reg});
printf "$1em28xx_write_reg(dev, %s, 0x%s);$4\n", $reg, $val;
} elsif (m/(.*)em28xx_write_regs\(dev\,\s*(.*)\,\s*\"\\x(..)\",\s*1\)\;(.*)/) {
my $reg = $2;
my $val = $3;
$val =~ tr/A-f/a-f/;
$reg = $reg_map{$reg} if defined($reg_map{$reg});
printf "$1em28xx_write_reg(dev, %s, 0x%s);$4\n", $reg, $val;
} else {
print $_;
}
}

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
1bee0184f6ffba1263a4b1e5732cde2c5292d843 25-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9754): em28xx: improve debug messages

Now, the first message states board names. Also, removed printing the alternate
settings by default. I2C messages are now clearer.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
505b6d0b774fa4475fedbd3cebf95199c17a0086 25-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9752): Remove duplicated fields on em28xx_board and em28xx structs

Several fields are duplicated on both structs. Let's just copy em28xx_board instead.

A later cleanup could just copy the fields that are changed, in order to keep em28xx_board
const.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
c9455fbb159711ca7a2ee5a67f0e7ca43287bbd7 22-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9717): em28xx: improve message probing logs

On some em28xx devices, there's an unused interface. This is printed on
the logs as an error. We can just ignore that interface.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
e879b8ebb000298f8124fc8fae570afc9eb37cbb 20-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9672): Allow opening more than one output at the same time

Some devices use more than one AC97 outputs. This patch allows such
devices to properly work.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
35ae6f04ad3e4c3ed8a83382b6511bd9beb5c768 20-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9670): em28xx: allow specifying audio output

Some boards use different AC97 setups for output. This patch adds the
capability of specifying the output to be used. Currently, only one
output is selected, but the better is to allow user to select it via a
mixer, on alsa driver.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
35643943be58aef82826e340761e86e0d37870ec 19-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9651): em28xx: Improve audio handling

This patch properly implements audio handling on em28xx. Before this
patch, it was assumed that every device has an Empia 202 audio chip.
However, this is not true.

After this patch, specific AC97 chipset setup and configurations can be
done.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
5c2231c84304563fd5d28e8bbb72e09e882a8e32 19-Nov-2008 Devin Heitmueller <devin.heitmueller@gmail.com> V4L/DVB (9648): em28xx: get audio config from em28xx register

Make use of the em28xx chip configuration register to determine whether
we have AC97 audio, I2S audio, or no audio support at all.

Thanks for Ray Lu from Empia for providing the em2860/em2880 datasheet.

Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
a924a499adb89f52046936deac87264774652a81 12-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9607): em28xx: Properly implement poll support for IR's

The first em28xx were based on i2c IR's. However, some newer designs
are coming with a polling-based IR. Those are done by reading a register
set at em28xx.

This patch adds core polling support for those devices. Later patches will
add support for some device-specific IR's.

This patch adds the same basic IR polling code used by bttv, cx88 and saa7134, and
shares the common getkey masks defined at ir-common.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
24a613e4b08c4077b4c809bebab1d4a36d541fcc 12-Nov-2008 Devin Heitmueller <devin.heitmueller@gmail.com> V4L/DVB (9588): Don't load em28xx audio module for digital-only devices

Rework the logic so that the em28xx-alsa module does not get loaded for devices
that don't support analog audio (such as the em2874)

Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
95ea4705746f52e17f1f14f9136ea2106ffe3b26 12-Nov-2008 Devin Heitmueller <devin.heitmueller@gmail.com> V4L/DVB (9587): Handle changes to endpoint layout in em2874

Empia moved around their endpoint configuration in newer chips, so accommodate
the changes

Thanks for Ray Lu from Empia for providing the em2874 datasheet.

Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
492404449532e40b5b6ed06b56aae2bf710239e6 12-Nov-2008 Devin Heitmueller <devin.heitmueller@gmail.com> V4L/DVB (9586): Fix possible null pointer dereference in info message

Fix case where we could end up dereferencing a NULL pointer if dev->vdev or
dev->vbi_dev were not set properly.

Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
af128a102c4aee994b4ff6e422b3cfab17127578 30-Oct-2008 Kay Sievers <kay.sievers@vrfy.org> V4L/DVB (9521): V4L: struct device - replace bus_id with dev_name(), dev_set_name()

This patch is part of a larger patch series which will remove
the "char bus_id[20]" name string from struct device. The device
name is managed in the kobject anyway, and without any size
limitation, and just needlessly copied into "struct device".

To set and read the device name dev_name(dev) and dev_set_name(dev)
must be used. If your code uses static kobjects, which it shouldn't
do, "const char *init_name" can be used to statically provide the
name the registered device should have. At registration time, the
init_name field is cleared, to enforce the use of dev_name(dev) to
access the device name at a later time.

We need to get rid of all occurrences of bus_id in the entire tree
to be able to enable the new interface. Please apply this patch,
and possibly convert any remaining remaining occurrences of bus_id.

We want to submit a patch to -next, which will remove bus_id from
"struct device", to find the remaining pieces to convert, and finally
switch over to the new api, which will remove the 20 bytes array
and does no longer have a size limitation.

Thanks,
Kay

Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
231ffc9c07021afcfb1afa229aa4935730e5163b 17-Dec-2008 Devin Heitmueller <dheitmueller@linuxtv.org> V4L/DVB (9920): em28xx: fix NULL pointer dereference in call to VIDIOC_INT_RESET command

Fix a NULL pointer dereference that would occur if the video decoder tied to
the em28xx supports the VIDIOC_INT_RESET call (for example: the cx25840 driver)

Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
484ab62c5ee805c2bdc405a85a4e64da2722690f 24-Nov-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (9748): em28xx: fix compile warning

Label fail_unreg is no longer used.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
818a557eeb9c16a9a2dc93df348b0ff68fbc487f 20-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9668): em28xx: fix a race condition with hald

Newer versions of hald tries to open it to call QUERYCAP.

Due to the lack of a proper locking, it is possible to open the device
before it finishes initialization.

This patch adds a lock to avoid this risk, and to protect the list of
em28xx devices.

While here, remove the uneeded BKL lock.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
f2a2e4910502e866833732f31ee697d15b3e56fd 19-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9647): em28xx: void having two concurrent control URB's

Now that we have a polling task for IR, there's a race condition, since
IR can be polling while other operations are being doing. Also, we are
now sharing the same urb_buf for both read and write control urb
operations. So, we need a mutex.

Thanks to Davin Heitmueller <devin.heitmueller@gmail.com> for warning me.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
625ff1679456d8adb9af0c980394ea3954e727a8 18-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9645): em28xx: Avoid memory leaks if registration fails

em28xx_init_dev() has some error conditions that are not properly
de-allocating dev var, nor freeing the device number for a future usage.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
c6330fb86fd0fed98b7e0d5792881a77b778fefc 19-Oct-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (9327): v4l: use video_device.num instead of minor in video%d

The kernel number of a v4l2 node (e.g. videoX, radioX or vbiX) is now
independent of the minor number. So instead of using the minor field
of the video_device struct one has to use the num field: this always
contains the kernel number of the device node.

I forgot about this when I did the v4l2 core change, so this patch
converts all drivers that use it in one go. Luckily the change is
trivial.

Cc: michael@mihu.de
Cc: mchehab@infradead.org
Cc: corbet@lwn.net
Cc: luca.risolia@studio.unibo.it
Cc: isely@pobox.com
Cc: pe1rxq@amsat.org
Cc: royale@zerezo.com
Cc: mkrufky@linuxtv.org
Cc: stoth@linuxtv.org
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>
f2a01a0027b29f682c3833d582e2827a4690f661 08-Sep-2008 Douglas Schilling Landgraf <dougsland@linuxtv.org> V4L/DVB (8937): em28xx: Fix and add some validations

Fixed and Added some validations

Signed-off-by: Douglas Schilling Landgraf <dougsland@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
d56dc61265d2527a63ab5b0f03199a43cd89ca36 30-Jul-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (8613): v4l: move BKL down to the driver level.

The BKL is now moved from the video_open function in v4l2-dev.c to the
various drivers. It seems about a third of the drivers already has a
lock of some sort protecting the open(), another third uses
video_exclusive_open (yuck!) and the last third required adding the
BKL in their open function.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
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>
a399810ca69d9d4bd30ab8c1678c7439e567f90b 21-Jul-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (8482): videodev: move all ioctl callbacks to a new v4l2_ioctl_ops struct

All ioctl callbacks are now stored in a new v4l2_ioctl_ops struct. Drivers fill in
a const struct v4l2_ioctl_ops and video_device just contains a const pointer to it.

This ensures a clean separation between the const ops struct and the non-const
video_device struct.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
35ea11ff84719b1bfab2909903a9640a86552fd1 20-Jul-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (8430): videodev: move some functions from v4l2-dev.h to v4l2-common.h or v4l2-ioctl.h

The functions in a header should not belong to another module. The prio functions
belong to v4l2-common.c, so move them to v4l2-common.h.

The ioctl functions belong to v4l2-ioctl.c, so create a new v4l2-ioctl.h header
and move those functions to it.

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>
a9fc52bcbeb5245b58d23c558f3e3e8f18bebbc3 28-Jun-2008 Devin Heitmueller <devin.heitmueller@gmail.com> V4L/DVB (8123): Add support for em2860 based PointNix Intra-Oral Camera

em28xx-cards.c
em28xx-input.c
em28xx-video.c
em28xx.h
- Add support for the PointNix Intra-Oral Camera, which required addition of
a construct for reading the "snapshot" button (provided on the em2860 and
em2880 chips, but this is the first case where I have seen it actually used
in a product). The button is wired to pin 56 on the em2880.

http://www.pointnix.com/ENG/dental/product_02.asp

Thanks to Roberto Mantovani <rmantovani@libero.it> for testing the changes

Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
78b526a43561d7e5e702ba27948e422dfbc4bea1 28-May-2008 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (7949): videodev: renamed the vidioc_*_fmt_* callbacks

The naming for the callbacks that handle the VIDIOC_ENUM_FMT and
VIDIOC_S/G/TRY_FMT ioctls was very confusing. Renamed it to match
the v4l2_buf_type name.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
0367ca1bc7346d9ea89a4b4f1b9220489bda65a3 09-Jun-2008 Devin Heitmueller <devin.heitmueller@gmail.com> V4L/DVB (8010): em28xx: Properly register extensions for already attached devices

em28xx-video.c
- Properly handle loading of the module when multiple devices are already
connected (such as at bootup). Before we were only calling dvb_init()
against the last device in the list, so while we were handling subsequent
adds properly, if there were multiple devices present on driver load,
everybody except the last device would not get initialized.

Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
a954b6681dd389e6bb63d9b5f3254d675f6984c9 21-May-2008 Al Viro <viro@ftp.linux.org.uk> V4L/DVB (7970): mix trivial endianness annotations

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
e9888a1330402050e596b2553e7009fe371c42be 18-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7617): Removes a manual mode setup

The setup is already done at open().

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
c67ec53f8f4e90ebd482789e2f6d121f41a0bd90 18-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7615): em28xx: Provide the proper support for switching between analog/digital

Before this patch, HVR900/HVR950 were incorreclty going back to analog. The
result is that only digital were working.

This patch provides the proper setup for analog/digital and tuner callback.
It also properly resets analog into a sane state at open().

Thanks to Steven Toth <stoth@linuxtv.org> and Michael Krufky <mkrufky@linuxtv.org>
for helping to set the proper parameters to GPO/GPIO em2883 ports.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
41facaa4b63cc1a0ff5a900149a29942d47e1491 18-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7613): em28xx: rename registers

Now, all registers will follow the same convension:

EM28XX_R<reg_number>_<reg_name>

This allows to associate a register with its value, and also with a canonical
name. Also, registers that are specific to a given chip were renamed accordingly,
as EM2800_foo (for 2800 only registers) or EM2880_foo (for registers that started
to appear on em2880).

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
89b329ef9d7cc16ed46fc991b21b2d45e7bf452c 18-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7610): em28xx: Select reg wait time based on chip ID

This is more conservative than just removing the msleep() from
em28xx_write_regs_req(), since some old hardware may still need it.
So, it will remove the sleep time only for those chips where this
removal were tested.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
6ea54d938b6f81baa0952a8b15d3e67e6c268b8f 18-Apr-2008 Douglas Schilling Landgraf <dougsland@gmail.com> V4L/DVB (7607): CodingStyle fixes

Signed-off-by: Douglas Schilling Landgraf <dougsland@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3421b7787a2cf41ac5edce9b5766bddd1e1d9986 18-Apr-2008 Aidan Thornton <makosoft@googlemail.com> V4L/DVB (7603): em28xx-dvb: don't use videobuf-dvb

Modifies em28xx-dvb not to use videobuf-dvb, but instead to include the code
for registering dvb devices locally and use the URB management code in the
em28xx driver directly. DVB data streaming should now work.

Signed-off-by: Aidan Thornton <makosoft@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
579f72e44fb1c991352f44c20b471c3001357f68 18-Apr-2008 Aidan Thornton <makosoft@googlemail.com> V4L/DVB (7602): em28xx: generalise URB setup code

Move the URB setup and management code to em28xx-core.c and generalise
it slighlty so that the DVB code can use it.

Signed-off-by: Aidan Thornton <makosoft@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
d2d9fbfd732f49999a2a94f2479934488fe3ea9d 18-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7600): em28xx: Sets frequency when changing to analog mode

This will make tuner-xc2028 to change to analog, if needed.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3aefb79af8d41c85e11da7109d62038849421bb6 18-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7593): em28xx: add a module to handle dvb

This patch adds em28xx-dvb. This driver is highly based on cx88-dvb and
saa7134-dvb.

This code currently loads and unloads successfully. However, some
changes are needed to properly support the mpeg streams and to setup
em28xx to work on DVB mode.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
44dc733cd9edac53402d705cd2f720accd0b3e2c 13-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7567): em28xx: Some cleanups

Removes some fields from data structs.

There are some fields that are just caching some calculus for buffer
size. The calculus were moved to the places it were needed and the now
unused fields were removed.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3b5fa928a6b2971ec65571745defc5d9758b4bc1 13-Apr-2008 Aidan Thornton <makosoft@googlemail.com> V4L/DVB (7565): em28xx: fix buffer underrun handling

This patch fixes three related issues and a fourth trivial one:

- Use buffers even if no-one's currently waiting for them (fixes
underrun issues);

- Don't return incomplete/mangled frames at the start of streaming and
in the case of buffer underruns;

- Fix an issue which could cause the driver to write to a buffer that's
been freed after videobuf_queue_cancel is called (exposed by the
previous two fixes - for some reason, ignoring buffers that weren't
being waited on worked around the issue);

- Fix a bug which could cause only one field to be filled in the first
buffer (or first few buffers) after streaming is started.

Signed-off-by: Aidan Thornton <makosoft@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
b4916f8ca1da71bb97fb6dcf1e8da3f9c64cf80e 13-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7564): em28xx: Some fixes to display logic

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
dbecb44c11d9517d604240b53581951ac4e3b5e6 13-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7563): em28xx: Add missing checks

There are some cases where nobody is waiting for a buffer. Due to the
lack of check, if you try to abort the userspace app, machine were
hanging, since IRQ were trying to use a buffer that were disallocated.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
cb7847249f1b2bad201e38c770ef4401c61c022a 13-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7559): em28xx: Fills the entire buffer, before getting another one

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
e9e6040df6c96678d7b776b3902e3b2c6bbfc5a3 13-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7557): em28xx: honour video_debug modprobe parameter

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
0ea13e6e59853cab9e8ed3ac231ec5d44d8386a6 13-Apr-2008 Aidan Thornton <makosoft@googlemail.com> V4L/DVB (7556): em28xx: fix locking on vidioc_s_fmt_cap

Currently, vidioc_s_fmt_cap is allowed even if streaming is running on some
other fh. This is likely to cause issues.

Block use of vidioc_s_fmt_cap if someone else has claimed access to the device.

Signed-off-by: Aidan Thornton <makosoft@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
b957dfdc3161d00b01b52154eb2d53580c8911e5 13-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7555): em28xx: remove timeout

It seems that we don't need a timeout for em28xx.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
0561297501842b5d7e0ca8805084f4d3f97c1078 13-Apr-2008 Brandon Philips <bphilips@suse.de> V4L/DVB (7550): em28xx: Fix a possible memory leak

I did notice a possible memory leak since iolock is could possibly be
called before a buffer has been freed.

This ensure s_fmt isn't called while the queue is busy thereby avoiding
iolock on already allocated buffers.

Signed-off-by: Brandon Philips <bphilips@suse.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
78bb3949a965e8a28e20988e28868429606b3639 13-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7549): em28xx: some small cleanups

- Remove dead code;
- Fix a few CodingStyle issues;
- Prints frame number, if debug is enabled.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
e0fadfd34dda2205b296b8826acfaaf4df2e022f 13-Apr-2008 Aidan Thornton <makosoft@googlemail.com> V4L/DVB (7548): Various fixes for the em28xx videobuf code

- Aborting buffer_filled if no-one's waiting on the waitqueue probably isn't
what we want, since just because no-one's waiting for it now doesn't mean they
wouldn't dequeue it in time. (vivi gets away with this, possibly because it
can fill each buffer much faster.)

- The first BUG_ON(lencopy <= 0); really isn't worth causing a kernel panic
over, especially since there are some reasons why it could trigger in normal use.

- The top and botom frames are actually the wrong way around.

Signed-off-by: Aidan Thornton <makosoft@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
e74153d44a57d9445fb1dfad7c3accbec6d4a873 13-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7547): em28xx: Fix a broken lock

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
f245e549f0d1fb43fd6d7759d31cd763e6d914b6 13-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7545): em28xx: Fix CodingStyle errors and most warnings introduced by videobuf

The last videobuf changes introduced several CodingStyle errors. Fixes all those
errors, as reported by checkpatch.pl

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
ca21d2dc945c224c3f121f6b5f2436877f029eed 13-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7544): em28xx: Fix timeout code

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
47625da2ab5e98728cdefbd344fb1493c26769ad 13-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7543): Fix capture start/stop and timeout

Also removes the dead restart_video_queue() function

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
ea8df7e09d2226c321c234a8f736fdb167a046cb 13-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7542): em28xx: Fix some warnings

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
d7aa80207babe694b316a48200b096cf0336ecb3 13-Apr-2008 Aidan Thornton <makosoft@googlemail.com> V4L/DVB (7541): em28xx: Some fixes to videobuf

It fixes a couple of minor bugs, comments out a bogus BUG_ON, sets fh->type
correctly, uses dev->width and dev->height for now, and adds a missing spinlock
init (nasty - caused a system lockup). It also adds some debug code which
probably isn't all that useful. I haven't tested this version of the patch yet,
though, so I'm not sure what you can expect if you try it.

Signed-off-by: Aidan Thornton <makosoft@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
ad0ebb96c220c461386e9a765fca3daf5590d01e 13-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7540): em28xx: convert to use videobuf-vmalloc

The usage of videobuf-vmalloc allows to cleanup em28xx logic.

Also, it reduced its size by about 5.42% on i386 arch (and about 7.5% on x86_64):

39113 4876 40 44029 abfd old/em28xx.ko
36731 4868 40 41639 a2a7 /home/v4l/master/v4l/em28xx.ko

Also, the preliminary tests, made on a single core 1.5 MHz Centrino showed
that CPU usage reduced from 42%-75% to 28%-33% (reports from "top") command.

A test with time command presented an even better result:

This is the performance tests I did, running code_example to get 1,000 frames
@29.995 Hz (about 35 seconds of stream), tested on a i386 machine, running at
1,5GHz:

The old driver:

$ time -f "%E: %Us User time, %Ss Kernel time, %P CPU used" ./capture_example
0:34.21: 8.22s User time, 25.16s Kernel time, 97% CPU used

The videobuf-based driver:

$ time -f "%E: %Us User time, %Ss Kernel time, %P CPU used" ./capture_example
0:35.36: 0.01s User time, 0.05s Kernel time, 0% CPU used

Conclusion:

The time consumption to receive the stream where reduced from about 33.38
seconds to 0.05 seconds.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
d80e134dc8e7e078248f7966a6884858f7ab185f 09-Apr-2008 Harvey Harrison <harvey.harrison@gmail.com> V4L/DVB (7522): media/video/em28xx replace remaining __FUNCTION__ occurrences

__FUNCTION__ is gcc-specific, use __func__

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
ff699e6bd02eb1c6d02c7c2b576c2ee6caab201c 22-Apr-2008 Douglas Schilling Landgraf <dougsland@gmail.com> V4L/DVB (7094): static memory

- Static memory is always initialized with 0.
- Replaced in some cases C99 comments for /* */

Signed-off-by: Douglas Schilling Landgraf <dougsland@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3687e1e67e4920a202d53cc24678fb34fcda8fc5 08-Feb-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7179): Allow more than one em28xx board

em28xx driver is capable of handling more than one usb device. However, isoc
transfers require a large amount of data to be transfered.

Before this patch, just one em28xx board were enough to allocate more than 50%
URBs:

T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 8
B: Alloc=480/800 us (60%), #Int= 0, #Iso= 2
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1

So, only one board could use an USB host at the same time. After the patch, it
is possible to use more than one em28xx at the same time, on the same usb host,
if the image size is slower or equal to 345600, since those images will
require about 30% of the URBs:

T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 8
B: Alloc=232/800 us (29%), #Int= 0, #Iso= 2
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1

So, in thesis, after the patch, it would be possible to use up to 3 boards by
each usb host, if the devices are generating small images.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
00b8730f5db19f9ea0985d7f14f869df79a0bf76 06-Feb-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7163): em28xx: makes audio settings more stable

Improves audio configurations on em28xx:
- mutes audio before changing amux;
- adds a delay after setting audio src;
- waits up to 50ms for ac97 busy.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
0df8130fe80ebde052516c1d729aa5d1c69ebc5c 06-Feb-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7162): em28xx: Fix endian and returns the correct values

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
1e7ad56f1fef94a7d8c1050bf3548d957fe67c01 06-Feb-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7160): em28xx: Allow register dump/setting for debug

Adds vidioc_[g|s]_register handlers. This allows getting/setting register
from em28xx.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
532fe65205253aef1ce5c0c76d2d8d303fb3fe71 29-Jan-2008 Adrian Bunk <bunk@kernel.org> V4L/DVB (7106): em28xx/: make 2 functions static

This patch makes the following needlessly global functions static:
- em28xx-core.c:em28xx_write_reg_bits()
- em28xx-video.c:em28xx_vdev_init()

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
ed086314f4e41eb90a9107c7fb2737230686f668 24-Jan-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7060): em28xx: remove has_tuner

has_tuner flag doesn't make much sense, since tuner_type=TUNER_ABSENT
means the same thing.

Having two ways to say that a tuner is not present is
not nice, since it may lead to bad setups. In fact, with the previous
code, if a device were using has_tuner=0, but the user forces a tuner,
with modprobe option tuner=type, the modprobe option won't work.

Also, tveeprom returns TUNER_ABSENT, when tuner is unknown or absent.
So, with the previous logic, in this case, the driver should set
has_tuner=0, or has_tuner=1 otherwise.

Instead of adding several additional tests and setups, better just to
remove .has_tuner.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3f4dfe2acf4ffed48395e69166531d8925eb106a 06-Jan-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6970): Request snd-usb-audio for devices with Audio Class support

Before this patch, only Vendor Class audio support were loaded. This means that
older em28xx devices won't have digital audio support loaded.

This patch changes the logic to auto load eighter snd-usb-audio, for devices
with USB Audio Class or em28xx-alsa, for devices with USB Vendor Class.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
0be4375410f1ecc917f3c0caf8f98908d357c93f 05-Jan-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6956): Add Radio support for em28xx

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3abee53e4402b6ae39e1e610f9ef94eb74097138 05-Jan-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6955): Properly implement 12MHz I2S support

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
d7448a8d9d06ca2ca4fd1f17404450ecba8bea3a 05-Jan-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6952): Add code for autoloading em28xx-alsa, if needed

Older em28xx devices does implement standard Audio Class.

However, on newer devices, this were replaced by a Vendor Class. This
patch autodetects that an em28xx lacks Audio Class and auto-loads
em28xx-alsa, for the devices that implements only a Vendor Class.

For devices with Audio Class, snd-usb-audio module will provide an ALSA
interface.

This patch uses the request_module_async function as defined on cx88-mpeg.c,
originally wrote by Markus Rechberger.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
6d79468dd8537530f4150e76ed9b4b63f80571c6 05-Jan-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6951): Integrates em28xx-audio.c into em28xx kernel module

Also fixes the remaining CodingStyle issues that Lindent didn't fix.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
539c96d0fd86bfdcfac75c88b74aa5798439293d 05-Jan-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6947): Improve audio setup handling

It is possible to select audio inputs via em28xx or via ac97 functions.
This patch allows configuring a board to use either one way.

It also do some cleanups at audio setup configurations.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
7d497f8afa80128bb99a425a6d7a766a863128a5 11-Nov-2007 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6587): Cleanup at tv norm selection

With the conversion to the vidio_ioctl2, tvnorms array is not required anymore.

Also, removed some code from V4L1 time (VIDEO_MODE_foo), specied at the
non-used video_decoder.h.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
cb77d010221e66c63f4a71546fed73be9b12b9a3 11-Nov-2007 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6586): Remove some dead code and make drive fully V4L2 compatible

There were some vestiges of an old V4L1 I2C driver that were called by em28xx.
This patch removes this dead code, and replaces videodev.h to videodev2.h

Now, this driver doesn't require V4L1 anymore.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
195a4ef627e110cd468a69fdb973548e6914577a 11-Nov-2007 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6585): Convert em28xx to video_ioctl2

Uses the newer ioctl handler at videodev. This patch also cleans up some
bad logic at the driver and do CodingStyle and other cleanups at the
resulting driver.

Also, since VIDIOCMBUF were not working, the V4L1 compat code were removed.
The compat code will eventually be re-inserted, if we find a clean way for
implementing compatibility with the old API.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
9e31ced888d1ca49ec5be51ef295e3ce994366c4 11-Nov-2007 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6584): Fix read() method

Backport read() fixes from Markus Rechberger.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
a225452ef80a7bd894fd2dfd01a4973d444152f4 11-Nov-2007 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6583): Fix em28xx read stream locking

On some situations, closing an streaming application and re-opening were
returning -EBUSY.

Uses the same locking schema also present on cx88.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
a3a048cea301baba5d451991074a85dc20a8f228 11-Nov-2007 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6582): Fix em28xx to allow multiple open

Allows shared access support for em28xx. Just one userspace application is
allowed to get stream. The other(s) application(s) can change V4L2 controls,
set video standards, etc.

This patch were splited from Markus Rechberger's tree and backported to 2.6.17
by Pádraig Brady.

The original patch were ported to the latest em28xx version and had CodingStyle
corrected to solve the issues pointed by scripts/checkpatch.pl.

Thanks to Pádraig Brady <P@draigBrady.com> for pointing this.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
fad7b958e753e18ff443786360f7846da50a3085 04-Nov-2007 Sascha Sommer <saschasommer@freenet.de> V4L/DVB (6545): em28xx: autodetect Cinergy 200 USB and VGear PocketTV

Adds autodetection support for the Cinergy200 USB and the VGear PocketTV.

Whenever a usb device with generic empia em2800 usb ids is detected the device
gets scanned for connected i2c devices. If the device list matches an em2800
device in the device list the model id gets changed accordingly.

Signed-off-by: Sascha Sommer <saschasommer@freenet.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
5a80415bcabf2b59e8c34db6e743c54582cfd3c2 04-Nov-2007 Sascha Sommer <saschasommer@freenet.de> V4L/DVB (6538): em28xx: fix locking to allow accesses from 2 different threads at the same time

The attached patch modifies the em28xx driver so that there can be ioctls from
multiple different threads.

This is necessary for capture apps like MPlayer that use different threads for
capturing and channel tuning.

Now the locking is only done for the ioctls that change properties of the
device or access the i2c bus.

It also removes some locks that look unnecessary:

In em28xx_init_dev:
the videodevice is not registered yet so nothing can access the hardware
meanwhile, the device struct is not assigned to the interface yet so no race
with disconnect is possible

In em28xx_release_resources:
it gets only called when dev->lock is already held

Signed-off-by: Sascha Sommer <saschasommer@freenet.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
03910cc39035d27f4c85c8ad2a236cc5c9456127 04-Nov-2007 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6536): Add a hint for boards without unique USB ID

This patch adds a function to allow trying to detect boards that shares
the generic IDs.

The current detection method is based at eeprom checksum.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3dbd85ba36ff74af87550e76f5765a768b108409 03-Nov-2007 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6535): Fix: Adds the generic PCI IDs for em28xx

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
7f1711234e6a21c153e892758d9d82c333ab37ac 19-Oct-2007 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6384): Replace TDA9887_SET_CONFIG by TUNER_SET_CONFIG

Currently, the only tuner-specific device that allows special
configurations is tda9887. However, tea5767 also may require some
special configurations (for example, to specify a different Xtal freq).

This patch replaces TDA9887_SET_CONFIG by a more generic internal ioctl
(TUNER_SET_CONFIG). The newer one allows specifying what tuner is
appliable to a configuration set, and allows an arbitrary configuration
struct.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
63337dd3f5506628e4831b08e39e09d7f1407769 10-Nov-2007 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6581): Fix: avoids negative vma usage count

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2b2c93ac998896db0d2b754a4fd83479bda7efde 03-Nov-2007 Sascha Sommer <saschasommer@freenet.de> V4L/DVB (6540): em28xx: fix failing autodetection after the reboot

The attached patch is required so that the autodetecion code also works after
a reboot.

Setting the I2C speed does not seem to be supported for em2800.

Signed-off-by: Sascha Sommer <saschasommer@freenet.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
6d35c8f648763299926d6e19de5334e15a9be7ab 01-Nov-2007 Trent Piepho <xyzzy@speakeasy.org> V4L/DVB (6514): em28xx: Include linux/mm.h

This em28xx-video.c uses functions from this header, but doesn't include it.
It depends on some v4l headers included two levels down including poll.h,
which includes mm.h.

These v4l headers might change, so it's best to include the headers needed
directly.

It also causes problems for the out of core build system's backward
compatibility with older kernels, which is the real reason I bothered to
create a patch for something that would otherwise be so minor that it would
hardly be worth the trouble.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
22c4a4e98ece0eaff13b3d0ac73c5283013eb6b1 15-Oct-2007 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6320): v4l core: remove the unused .hardware V4L1 field

struct video_device used to define a .hardware field. While
initialized on severl drivers, this field is never used inside V4L.
However, drivers using it need to include the old V4L1 header.

This seems to cause compilation troubles with some random configs.
Better just to remove it from all drivers.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3a4fa0a25da81600ea0bcd75692ae8ca6050d165 19-Oct-2007 Robert P. J. Day <rpjday@mindspring.com> Fix misspellings of "system", "controller", "interrupt" and "necessary".

Fix the various misspellings of "system", controller", "interrupt" and
"[un]necessary".

Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
Signed-off-by: Adrian Bunk <bunk@kernel.org>
a991f44b79fa49b281eb078eed4a76a42101012a 10-Oct-2007 Trent Piepho <xyzzy@speakeasy.org> V4L/DVB (6316): Change list_for_each+list_entry to list_for_each_entry

The rest of V4L files.

There is one list_for_each+list_entry in cpia_pp.c that
wasn't changed because it expects the loop iterator to remain NULL if
the list is empty.

A bug in vivi is fixed; the 'safe' version needs to be used because the loop
deletes the list entries.

Simplify a second loop in vivi and get rid if an un-used variable in that loop.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
afa76b392e10d37c9e717198b5c2686de26c629d 13-Aug-2007 Rolf Eike Beer <eike-kernel@sf-tec.de> V4L/DVB (6005): Initialize filp->private_data only once in em28xx_v4l2_open

Some lines later filp->private_data is initialized to dev again.
Since there are some checks that might fail in the mean time
keep the later version.

Signed-off-by: Rolf Eike Beer <eike-kernel@sf-tec.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
1207cf84f289694ba7ba8eeaa346a0195b3de606 09-Aug-2007 Jesper Juhl <jesper.juhl@gmail.com> USB: Fix a memory leak in em28xx_usb_probe()

If, in em28xx_usb_probe() the memory allocation
dev->alt_max_pkt_size = kmalloc(32*
dev->num_alt,GFP_KERNEL);
fails, then we'll bail out and return -ENOMEM.
The problem is that in that case we don't free the storage allocated
to 'dev', thus causing a memory leak.

This patch fixes the leak by freeing 'dev' before we return -ENOMEM.
This fixes Coverity bug #647.


Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
59c51591a0ac7568824f541f57de967e88adaa07 09-May-2007 Michael Opdenacker <michael@free-electrons.com> Fix occurrences of "the the "

Signed-off-by: Michael Opdenacker <michael@free-electrons.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
fa027c2a0a0d6d1df6b29ee99048502c93da0dd4 12-Feb-2007 Arjan van de Ven <arjan@linux.intel.com> [PATCH] mark struct file_operations const 4

Many struct file_operations in the kernel can be "const". Marking them const
moves these to the .rodata section, which avoids false sharing with potential
dirty data. In addition it'll catch accidental writes at compile time to
these shared resources.

[akpm@sdl.org: dvb fix]
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
9a2816c1c4ca7f5d02de4339589913701251dd5a 27-Dec-2006 David Brownell <david-b@pacbell.net> V4L/DVB (5014): Allyesconfig build fixes on some non x86 arch

- CAFE_CCIC needs to depend on PCI, else "allyesconfig" breaks
on systems without PCI
- em28xx-video can't udelay(2500) else "allyesconfig" breaks
on systems that refuse to spin that long (I saw it on ARM)

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
663d1ba2f1f66db43ab95350f965c1d9f2e3e5bc 10-Oct-2006 Al Viro <viro@ftp.linux.org.uk> [PATCH] em28xx NULL noise removal

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
784e8fe417d45b526eeb74794b7df43e11000f70 26-Aug-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (4546): Add u32 argument to VIDIOC_INT_RESET.

The extra argument makes it possible to reset subsystems of a chip if
that is supported.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
4987abed29247063bb70374e60916584a43975ef 27-Jun-2006 Michael Krufky <mkrufky@linuxtv.org> V4L/DVB (4267): Remove all instances of request_module("tda9887")

We should no longer try to load the tda9887 module, because it no longer
exists. The tda9887 driver has been merged into the tuner module.
This patch removes all instances of request_module("tda9887") from
the following video4linux drivers: bttv, cx88, em28xx and saa7134.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2e7c6dc3989136844eb63e05f9e4dc6608a763c6 03-Apr-2006 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (3715): Change all emails to the currently used one.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
c7c0b34c27bbf0671807e902fbfea6270c8f138d 02-Apr-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3712): Fix video input setting of em28xx, use _INT_S_VIDEO_ROUTING in tvp5150

- Use new routing input defines in em28xx-cards.c
- Fix S-Video settings for tvp5150-based cards (input was copied from saa7115
based cards and worked only because S-Video was selected in the default: case)
- Replace VIDIOC_S_INPUT by VIDIOC_INT_S_VIDEO_ROUTING in em28xx-video.c
- Remove the now obsolete VIDIOC_S_INPUT handler in saa7115.c
- Add VIDIOC_INT_G/S_VIDEO_ROUTING in tvp5150.c
- Add new media/tvp5150.h with the routing defines.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
7c908fbb0139fa1080412d0590189abfe2df87eb 11-Apr-2006 Eric Sesterhenn <snakebyte@gmx.de> V4L/DVB (3790): Use after free in drivers/media/video/em28xx/em28xx-video.c

In several places we use dev->devno right after we kfree() dev. This fixes
coverity bug id #1065

Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
07151724a35e8e70f1aa64ce30a5a3f5c1ad49a3 01-Apr-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3702): Make msp3400 routing defines more consistent

Renamed various msp3400 routing defines to be more consistent and less
confusing. Esp. the MSP_DSP_OUT defines were confusing since it is really
a DSP input.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
ab4cecf9c4e4a69cf2161f8a2424be14984430f8 01-Apr-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3700): Remove obsolete commands from tvp5150.c

- Remove old DECODER_ commands from tvp5150.c, replacing them with newer
ones if appropriate.
- Small VIDIOC_G_TUNER fixes in msp3400 and tuner.
- Fix VIDIOC_S_TUNER support in em28xx.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2474ed444b475614ef795523076be7cc8437ae00 19-Mar-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3582): Implement correct msp3400 input/output routing

- implement VIDIOC_INT_S_AUDIO_ROUTING for msp3400 and tvaudio
- use the new command in bttv, pvrusb2 and em28xx.
- remove the now obsolete MSP_SET_MATRIX from msp3400 (yeah!)
- remove the obsolete VIDIOC_S_AUDIO from msp3400.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
f5762e441d5022ecc5b66b5fe54e41e2ac5d02be 13-Mar-2006 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (3513): Remove saa711x driver

Now, em28xx uses saa7115 instead of saa711x.
saa7115 driver is capable of handling saa 7113, 7114 and 7115.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
19478843e4f8af7de9b297876519ee8b98c2f5ad 14-Mar-2006 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (3499): Fix a bug when more than MAXBOARDS were plugged on em28xx

Coverity reported a bug at checking max number of supported boards by
em28xx init code.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
7215fdb214ad8d76c9d667be07f870f0f0544959 07-Feb-2006 Markus Rechberger <mrechberger@gmail.com> [PATCH] Fixed em28xx based system lockup

Fixed em28xx based system lockup, device needs to be initialized before
starting the isoc transfer otherwise the system will completly lock up.

Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
9475fb1c717ee5ce3df767b8e3b9439d341f043d 27-Feb-2006 Markus Rechberger <mrechberger@gmail.com> V4L/DVB (3293): Fixed amux hauppauge hvr900/terratec hybrid xs

Fixed amux hauppauge hvr900/terratec hybrid xs

Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3593cab5d62c4c7abced1076710f9bc2d8847433 07-Feb-2006 Ingo Molnar <mingo@elte.hu> V4L/DVB (3318b): sem2mutex: drivers/media/, #2

Semaphore to mutex conversion.

The conversion was generated via scripts, and the result was validated
automatically via a script as well.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
e5d4a56d5d824e4dfe7d065d0fedb02e63952710 07-Feb-2006 Markus Rechberger <mrechberger@gmail.com> V4L/DVB (3314): Fixed em28xx based system lockup

Fixed em28xx based system lockup, device needs to be initialized
before starting the isoc transfer otherwise the system will completly lock up.

Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
a94e95b443811c127734ef10f3b7d2220532c1d2 23-Jan-2006 Markus Rechberger <mrechberger@gmail.com> V4L/DVB (3432): Hauppauge HVR 900 Composite support

- Hauppauge HVR 900 Composite support

Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
9aeb4b051b65c0248ea6589096950413c4da9d63 23-Jan-2006 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (3423): CodingStyle fixes.

- CodingStyle fixes.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2d50f847c62acbafa25dc690d0fe65b8b908a326 23-Jan-2006 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (3422): Implemented VIDIOC_G_FMT/S_FMT for sliced VBI

- Implemented VIDIOC_G_FMT/S_FMT for sliced VBI
- VIDIOC_S_FMT now calls a function

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
e5589befc472ca50882f37c4fb32333fc93a65b7 23-Jan-2006 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (3421): Several fixes to prepare for VBI

- Fixed VBI compilation.
- Included capacity to specify vbi and video number.
- Added a better control for using more than one em28xx device.
- VIDIOC_G_FMT now calls a function.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
439090d7d82a333a21987dcbccb90961f27fd2e9 23-Jan-2006 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (3406): Added credits for em28xx-video.c

- Added credits for sn9c102 kernel module and his author as
some parts of em28xx-video were based.

Acked-by: Luca Risolia <luca.risolia@studio.unibo.it>
Acked-by: Markus Rechberger <mrechberger@gmail.com>
Acked-by: Ludovico Cavedon <cavedon@sssup.it>
Acked-by: Sascha Sommer <saschasommer@freenet.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
5a880279dc89cb9771dabc0d19b7f4341b8c7983 23-Jan-2006 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (3406): Added credits for em28xx-video.c

- Added credits for sn9c102 kernel module and his author as
some parts of em28xx-video were based.

Acked-by: Luca Risolia <luca.risolia@studio.unibo.it>
Acked-by: Markus Rechberger <mrechberger@gmail.com>
Acked-by: Ludovico Cavedon <cavedon@sssup.it>
Acked-by: Sascha Sommer <saschasommer@freenet.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
1e4baed379a2bff3c728ea34602d3432fb047af8 15-Jan-2006 Ingo Molnar <mingo@elte.hu> V4L/DVB (3380): Semaphore to mutex conversion on drivers/media

- Semaphore to mutex conversion.
The conversion was generated via scripts, and the result was validated
automatically via a script as well.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
7408187d223f63d46a13b6a35b8f96b032c2f623 11-Jan-2006 Panagiotis Issaris <takis@issaris.org> V4L/DVB (3344a): Conversions from kmalloc+memset to k(z|c)alloc


Conversions from kmalloc+memset to k(z|c)alloc.

Signed-off-by: Panagiotis Issaris <takis@issaris.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
5e453dc757385ec892a818e4e3b5de027987ced9 09-Jan-2006 Michael Krufky <mkrufky@m1k.net> V4L/DVB (3269): ioctls cleanups.


- Now, all internal ioctls are at v4l2-common.h
- removed unused ioctl at saa6752hs.h
- all debug ioctl code moved to v4l2-common.c
- removed duplicated stuff from other cards

Signed-off-by: Michael Krufky <mkrufky@m1k.net>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
9bb13a6dc3a6f68c990264838ff0493d900c48d7 09-Jan-2006 Mauro Carvalho Chehab <mchehab@brturbo.com.br> V4L/DVB (3233): Fixed API to set I2S speed control


- Created a new ioctl to control I2S speed. Old calls to an
inadequate V4L2 API replaced.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
7865c44d8ae832d6fb6522862268c7bd7814fd44 09-Jan-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L/DVB (3100): fix compile error, remove dead code and volume scaling

- Fix compile error (missing '}') in em28xx-video.c. Remove dead code and
volume scaling from msp3400.c. Volume scaling does not belong there, it should
be done in the driver for the card that uses the msp3400 if needed, not in the
msp3400.c source. The volume scaling code gave problems with the ivtv driver
which does not need to do any scaling.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
c0477ad9feca01bd8eff95d7482c33753d05c700 09-Jan-2006 Mauro Carvalho Chehab <mchehab@brturbo.com.br> V4L/DVB (3099): Fixed device controls for em28xx on WinTV USB2 devices

- Controls now come from video and audio decoder driver for msp3400 and tvp5150.
- Added audio and sound controls as provided by msp3400 and tvp5150.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
17cbe2e5831c3df114c8d7b7d8bf07f2c35a6030 09-Jan-2006 Mauro Carvalho Chehab <mchehab@brturbo.com.br> V4L (963): Explicit compat_ioctl32 handler to em28xx

- Included explicit compat_ioctl32 handler.
- removed extra line on cardlist.


Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
75318d2d7cab77b14c5d3dbd5e69f2680a769e16 21-Nov-2005 Greg Kroah-Hartman <gregkh@suse.de> [PATCH] USB: remove .owner field from struct usb_driver

It is no longer needed, so let's remove it, saving a bit of memory.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
f85c657ff1f712abd5207a95fba8a5fcc282ab04 19-Dec-2005 Jean Delvare <khali@linux\-fr.org> [PATCH] V4L/DVB (3188): Fix compilation failure with gcc 2.95.3.

- Fix compilation failure with gcc 2.95.3.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
3639c8619d50a6dea8fa106a5c61d848ffdcd3d6 12-Dec-2005 Sascha Sommer <saschasommer@freenet.de> [PATCH] V4L/DVB: (3113) Convert em28xx to use vm_insert_page instead of remap_pfn_range

Convert em28xx to use vm_insert_page instead of remap_pfn_range

Signed-off-by: Sascha Sommer <saschasommer@freenet.de>
Signed-off-by: Michael Krufky <mkrufky@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Cc: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
674434c691e10015660022fc00b04985a23ef87b 12-Dec-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] V4L/DVB: (3086c) Whitespaces cleanups part 4

Clean up whitespaces at v4l/dvb files

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
943a49027b6d9829b737e6da3d72b867a7a6f832 01-Dec-2005 Adrian Bunk <bunk@stusta.de> [PATCH] V4L: Makes needlessly global code static

This patch makes needlessly global code static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
9d4d9c05c807ab8a49ac0024987b223bb32c022d 09-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] V4L: 920: fixed autodetection of max size by if alternate setting

- Fixed autodetection of max size by if alternate setting
- Fixed some debug messages

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
eac94356c8f9f7d3854ed0290a406b13bfe8df4c 09-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] V4L: 907: em28xx cleanups and fixes

- Em28xx cleanups and fixes.
- Some cleanups and audio amux adjust.
- em28xx will allways try, by default, the biggest size alt.
- Fixes audio mux code.
- Fixes some logs.
- Adds support for digital output for WinTV USB2 board.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
b296fc6017e0ec6bc6cd0f40275f268035eb6b8b 09-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] v4l: 898: em2820 i2c fix

- Miscelaneous fixes for em28xx
- I2C hardware named changed to wright value.
- utsname included to em28xx-video.c
- Makefile fixes.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
ad07d93ae7884a72a293eb4efb61a872f109ebd5 09-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] v4l: 897: saa7146 fix

- Fixing headers to compile cleanly.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
3acf28095009509c9ca1e283de821b5be9ddede6 09-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] v4l: 886: renamed common structures to em28xx

- Renamed common structures to em28xx

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
f7abcd385cc8a5a2f75b07c8325067ea2785ba1e 09-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] v4l: 877: module em2820 renamed to em28xx and moved to v4l dir

- Module em2820 renamed to em28xx and moved to V4L dir.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
91cad0f2bda7cd254efcbbff0e53f86941ca7764 09-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] v4l: 856: some module rename and small fixes

- Some module rename and small fixes

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
52c02fcd00cf6fb6f5b2c8beae3b283c63cf1210 09-Nov-2005 Sascha Sommer <saschasommer@freenet.de> [PATCH] v4l: 850: update em2800 scaler code and comments based on info from empiatech

- Update em2800 scaler code and comments based on info from empiatech

Signed-off-by: Sascha Sommer <saschasommer@freenet.de>
Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
a38a7d4ff8539817691a335149cac903be4250f8 09-Nov-2005 Markus Rechberger <mrechberger@gmail.com> [PATCH] v4l: 841: added saa7114 initcode for msi vox usb 2.0

- Added saa7114 initcode for MSI Vox USB 2.0

Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
1a9ca74d22065355d61bb6395590378040e7366d 09-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] v4l: 815: commented obsoleted stuff at videodev headers

- Commented obsoleted stuff at videodev headers.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
86bb4a215d152111f20daeb2a530f064afee8542 09-Nov-2005 Markus Rechberger <mrechberger@gmail.com> [PATCH] v4l: 814: cleanup dev assignment

- Cleanup dev assignment

Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
9c75541fc97252e605b7bc8f9b09f816483e22fb 09-Nov-2005 Markus Rechberger <mrechberger@gmail.com> [PATCH] v4l: 813: replaced obsolete video get drvdata and video set drvdata

- Replaced obsolete video_get_drvdata and video_set_drvdata

Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
4ac97914c6c35f6bf132071c718e034d0846b9f5 09-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] v4l: 800: whitespace cleanups

- Whitespace Cleanups.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
74458e6c1aea9e422e46030e7bc61e9b0984be5b 09-Nov-2005 Sascha Sommer <saschasommer@freenet.de> [PATCH] v4l: 786: chip id removed since it isn t required anymore

- Chip_id removed since it isn't required anymore.

Signed-off-by: Sascha Sommer <saschasommer@freenet.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
d5e5265315770bda46c50ecaa64e2b9790f2064c 09-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] v4l: 784: several improvement on i2c ir handling for em2820

- Several Improvement on I2C IR handling for em2820:
- moved Pinnacle IR table (ir_codes_em2820) to em2820-input.c
- IR struct renamed and moved to a header file.
- New file to handle em2820-specific IR.
- Some cleanups.
- attach now detects I2C IR and calls em2820-specific IR code
- IR compat code moved to compat.h
- New header with struct IR_i2c there, to allow it to be
used by board-specific input handlers.

- Some improvements at em28xx board detection:
- Board detection message improved to show interface and class.
- Now it doesn't touch audio interfaces.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
596d92d5128d308b5a79f21c3e72c87f5fc7e58b 09-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] v4l: 767: included support for em2800

- Included support for em2800.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
a9ae9fb17bdcb22ae0c1abc6ebd97704dd80d9d1 09-Nov-2005 Markus Rechberger <mrechberger@gmail.com> [PATCH] v4l: 761: fixed registry value in em2820

- Fixed registry value in em2820-i2c.c which corrects a tuner setting (also
removed that call from em2820-video.c)

Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
98f30ed06a0feade6250438b0bd6cc472f26b12a 09-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] v4l: 739: created make changelog to make easier to generate patches

- Created make changelog to make easier to generate patches.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
1f6173ed9b48709383631e2c43eed770f15d05d1 09-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] v4l: 729: fixed include when compiling at kernel tree

- Fixed include when compiling at kernel tree

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
a6c2ba283565dbc9f055dcb2ecba1971460bb535 09-Nov-2005 akpm@osdl.org <akpm@osdl.org> [PATCH] v4l: 716: support for em28xx board family

- Added support for em28xx board family

Signed-off-by: Ludovico Cavedon <cavedon@sssup.it>
Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>