History log of /drivers/media/video/em28xx/em28xx-core.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>
8ab3362665a699bd54fc489ff7fb6372678b94c1 28-Dec-2011 Holger Nelson <hnelson@hnelson.de> [media] em28xx: Reworked probe code to get rid of some hacks

Reworked device probing to get rid of hacks to guess the maximum size of
dvb iso transfer packets. The new code also selects the first alternate
config which supports the largest possible iso transfers for dvb.

[mchehab@redhat.com: Fix a few checkpatch.pl CodingStyle compliants]
Signed-off-by: Holger Nelson <hnelson@hnelson.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2a5fc873d6a1976b7ed47f074fc46abb9f822e32 20-Dec-2011 Gareth Williams <gareth@garethwilliams.me.uk> [media] Add AC97 8384:7650 for some versions of EMP202

Fix detection of EMP202 audio chip. Some versions have an id of
0x83847650 instead of 0xffffffff

Honestech Vidbox NW03 has a EMP202 audio chip with a different Vendor ID.

Apparently, it is the same with the Gadmei ITV380:
http://linuxtv.org/wiki/index.php/Gadmei_USB_TVBox_UTV380

Signed-off-by: Gareth Williams <gareth@garethwilliams.me.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
d7222e7d6fb06ca3e7aa7a1ab07f8e6c6adb1d22 24-Sep-2011 Chris Rankin <rankincj@yahoo.com> [media] em28xx: fix race on disconnect

This patch closes the race on the device and extension lists at USB disconnect
time. Previously, the device was removed from the device list during
em28xx_release_resources(), and then passed to the em28xx_close_extension()
function so that all extensions could run their fini() operations. However, this
left a (brief, theoretical, highly unlikely ;-)) window between these two calls
during which a new module could call em28xx_register_extension(). The result
would have been that the em28xx_usb_disconnect() function would also have passed
the device to the new extension's fini() function, despite never having called
the extension's init() function.

This patch also restores em28xx_close_extension()'s symmetry with
em28xx_init_extension(), and establishes the property that every device in the
device list must have been initialised for every extension in the extension list.

Signed-off-by: Chris Rankin <rankincj@yahoo.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
76424a0a50982e4026c7d1d5a0cddc92eecc5969 20-Aug-2011 Chris Rankin <rankincj@yahoo.com> [media] em28xx: move printk lines outside mutex lock

There's no reason to still be holding the device list mutex for either of these
printk statements.

Signed-off-by: Chris Rankin <rankincj@yahoo.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
6c03e38b34dcfcdfa2f10cf984995a48f030f039 20-Aug-2011 Chris Rankin <rankincj@yahoo.com> [media] em28xx: clean up resources should init fail

This patch ensures that the em28xx_init_dev() function cleans up after itself,
in the event that it fails. This isimportant because the struct em28xx will be
deallocated if em28xx_init_dev() returns an error.

[mchehab@redhat.com: Fix merge conflicts and simplify the goto labels]
Signed-off-by: Chris Rankin <rankincj@yahoo.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
f7acc4bb86594d78aa41c07b7670df3e03738b18 28-Jul-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] em28xx: Fix DVB-C maxsize for em2884

The logic at em28xx_isoc_dvb_max_packetsize() sucks, at least for newer
the needed packet size. Yet, it is better than nothing.

Rewrite the code in order to change the default to 752 for em2884 and
newer chips and provide a better way to handle per-chipset specifics.

For em2874, the current default should be enough, as the only em2874
board is currently a 1-seg ISDB-T board, so, it needs only a limited
amount of bandwidth.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
fec528b77f9be3e7ebb8d7c25888b0cf9fb8e8d6 04-Jul-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] Add initial support for Terratec H5

Not working yet. There are some fixes at the DRX-K that are needed
for it to work.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
4f83e7b3ef938eb9a01eadf81a0f3b2c67d3afb6 17-Jun-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] em28xx: Add support for devices with a separate audio interface

Some devices use a separate interface for the vendor audio class.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
850d24a5a861238f583f59cd39de4dfe5142a4c9 19-Jun-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] em28xx-alsa: add mixer support for AC97 volume controls

Export ac97 volume controls via mixer.

Pulseaudio will probably handle it very badly, as it has
no idea about how volumes are wired, and how are they
associated with each TV input. Those wirings are
card model dependent, and we don't have the wiring mappings
for each supported device.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
0f8a61fc42a618e25c61549590c35c66c63e2ca7 18-Jun-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] em28xx: Fix a wrong enum at the ac97 control tables

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
00d2e7ad9dd4e88224d091e454371d8a9a80719f 18-Jun-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] em28xx: Don't initialize a var if won't be using it

Fixes most cases of initializing a var but not using it.

There are still 3 cases at em28xx-alsa, were those vars should
probably be used.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2892bd0d95f8b0312db6f630e3a79eefb6981fcb 02-May-2011 Steve Kerrison <steve@stevekerrison.com> [media] em28xx: Disable audio for EM28174

Signed-off-by: Steve Kerrison <steve@stevekerrison.com>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
bc022694d7da1c848e395f18eaf856abc9dd0b09 07-Apr-2011 Antti Palosaari <crope@iki.fi> [media] em28xx: add support for EM28174 chip

EM28174 is very similar as already supported EM2874.
I am not sure what are differences, but it could be analog support.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
517521e4651ac106fc2a4f7638c284f60de92bb8 22-May-2010 Dan Carpenter <error27@gmail.com> V4L/DVB: em28xx: remove unneeded null checks

The "dev" variable is used as a list cursor in a list_for_each_entry()
loop and can never be null here so I removed the check.

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
997ea58eb92f9970b8af7aae48800d0ef43b9423 12-Apr-2010 Daniel Mack <daniel@caiaq.de> USB: rename usb_buffer_alloc() and usb_buffer_free() users

For more clearance what the functions actually do,

usb_buffer_alloc() is renamed to usb_alloc_coherent()
usb_buffer_free() is renamed to usb_free_coherent()

They should only be used in code which really needs DMA coherency.

All call sites have been changed accordingly, except for staging
drivers.

Signed-off-by: Daniel Mack <daniel@caiaq.de>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Pedro Ribeiro <pedrib@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
5013318ca4fd22e30fd891f234b60daa3ca2f62d 07-Apr-2010 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB: em28xx: fix locks during dvb init sequence

Serialize DVB initialization, to avoid it to happen while analog
initialization is still happening.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
1744feab9a2241f2adf03be5ef8ecbd279f5944b 22-Jan-2010 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB: em28xx: reduce cropping for VBI area

It turns up we can reduce the starting line for the active area, which results
in more data being captured when under PAL (while the full VBI capture window
still stays properly encoded).

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>
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>
1bad429e81f9a9ffa01c4158e6d1b1a3e06d9886 05-Dec-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (13545): em28xx: properly select IR protocol based on the IR table

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
0731160aca15df5882387e07d61671e6746c658f 27-Nov-2009 Mauro Carvalho Chehab <mchehab@redhat.com> em28xx: don't load audio modules when AC97 is mis-detected

With em2800 hardware, AC97 hardware can be detected even when it doesn't
exist. If, after probing for AC97, the driver won't find a companion
chip, simply prevents the load of the audio modules.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
fc099f0e0e52a349a3fe92bfb8d3fb6ec5378174 07-Nov-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (13327): em28xx: fix alt modprobe parameter

It seems that some patch broke alt modprobe parameter. Fix it to allow
changing alternate interfaces during module load and at runtime.

If changed during runtime, you'll need to stop a and restart stream for
the parameter to be used.

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>
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>
d7612c86d099939503c2f849a523dbca753d1935 07-Aug-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12405): em28xx-cards: move register 0x13 setting to the proper place

Register 0x13 seems to be a sort of image control, maybe gamma, white
level or black level. Lower values produce better images, while higher
values increases the contrast and shifts colors to green. 0xff produces
a black image. This register is not Silvercrest-specific, so its code
should be moved to a better place.

If this register is left alone, a random value can be found at the
register, producing weird results.

While here, let's remove register 0x0d, as it had no noticed effect at
the image.

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>
579d315218e8a3f696e375c5f6917da6488bec8a 14-Jul-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12244): em28xx: adjust vinmode/vinctl based on the stream input format

Depending on the video input format, vinmode/vinctl needs adjustments.
For TV, this is not relevant, since the supported decoders output data
at the same format. However, webcam sensors may have different formats,
so, this needs to be adjusted based on the device.

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>
02e7804b2135ff941b8846f5820cf48fbfdadd54 29-Jun-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (12138): em28xx: add support for Silvercrest Webcam

This webcam uses a em2710 chipset, that identifies itself as em2820,
plus a mt9v011 sensor, and a DY-301P lens.

It needs a few different initializations than a normal em28xx device.

Thanks to Hans de Goede <hdegoede@redhat.com> and Douglas Landgraf
<dougsland@redhat.com> for providing the acces for the webcam during
this weekend, I could make a patch for it while returning back from
FISL/Fudcom LATAM 2009.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
1cdc6392b74246be333e2c88b61beedbf9991422 10-Jun-2009 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB (11979): em28xx: don't create audio device if not supported

In cases where the device does not actually provide a USB audio class *or*
vendor audio, do not load the driver that provides vendor audio support (such
as the KWorld 2800d). Otherwise, the /dev/audio1 device file gets created and
users get confused.

Also, reworks the logic a bit so that we don't try to inspect the register
content if the register read failed entirely.

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
d18e2fda7133287bf8a81809816e646cf17c332e 16-May-2009 Devin Heitmueller <dheitmueller@kernellabs.com> V4L/DVB (11810): em28xx: properly set packet size based on the device's eeprom configuration.

The em28xx actually has a register that tells the driver what the maximum
packet size is (based on a value programmed into the eeprom). Make use of
that register instead of assuming a hardcoded value of 564 (since 564 is not
correct for devices that do QAM such as the KWorld 340u).

Note that for now the em2874 code isn't there, falling back to the 564 value,
however this is not a problem since there are not any em2874 based devices in
the current v4l-dvb tree).

Thanks to Jarod Wilson for detecting the initial problem and figuring out that
the isoc configuration was wrong for his device.

Cc: Jarod Wilson <jarod@wilsonet.com>
Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
42ef4632896b0c44f77fb5783b320cbedd38e3e3 09-Apr-2009 Filipe Rosset <rosset.filipe@gmail.com> V4L/DVB (11487): em28xx: fix typo em28xx_errdev message

Fix typo usbtransfer->usb transfer on em28xx_errdev message.

Signed-off-by: Filipe Rosset <rosset.filipe@gmail.com>
Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com>
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>
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>
9a4f8201a5d241dd725c1e1c796d826e49dcd396 23-Mar-2009 Devin Heitmueller <dheitmueller@linuxtv.org> V4L/DVB (11141): em28xx: fix oops on ARM platform when allocating transfer buffers

Add missing URB_NO_TRANSFER_DMA_MAP flag, since the use of consistent memory
is not permitted for DMA on the ARM platform.

Thanks to Paul Thomas <pthomas8589@gmail.com> for providing sample ARM
hardware that was experiencing the oops (tested on the at91rm9200 based
LinuxStamp).

Thanks to David Brownell <david-b@pacbell.net> for providing insight into the
ARM memory architecture.

Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
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>
aa5a1821859c9c2915bc00e79f6e01e619df6e8f 08-Feb-2009 Robert Krakora <rob.krakora@messagenetsystems.com> V4L/DVB (10518): em28xx: Fix for em28xx memory leak and function rename

Fix for em28xx memory leak and function rename

Signed-off-by: Robert Krakora <rob.krakora@messagenetsystems.com>
Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
8ed06fd4729d25959f6af8b7ce4e3888866bfe56 19-Jan-2009 Robert Krakora <rob.krakora@messagenetsystems.com> V4L/DVB (10255): em28xx: Clock (XCLK) Cleanup

Clock (XCLK) Cleanup

Signed-off-by: Robert Krakora <rob.krakora@messagenetsystems.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
9c06210b89e604aa75314d3d173a93292b0d2777 25-Jan-2009 Robert Krakora <rob.krakora@messagenetsystems.com> V4L/DVB (10325): em28xx: Fix for fail to submit URB with IRQs and Pre-emption Disabled

Trace: (Provided by Douglas)

BUG: sleeping function called from invalid context at drivers/usb/core/urb.c:558
in_atomic():0, irqs_disabled():1
Pid: 4918, comm: sox Not tainted 2.6.27.5 #1
[<c04246d8>] __might_sleep+0xc6/0xcb
[<c058c8b0>] usb_kill_urb+0x1a/0xd8
[<c0488e68>] ? __kmalloc+0x9b/0xfc
[<c0488e85>] ? __kmalloc+0xb8/0xfc
[<c058cd5a>] ? usb_alloc_urb+0xf/0x31
[<f8dd638c>] em28xx_isoc_audio_deinit+0x2f/0x6c [em28xx_alsa]
[<f8dd6573>] em28xx_cmd+0x1aa/0x1c5 [em28xx_alsa]
[<f8dd65e1>] snd_em28xx_capture_trigger+0x53/0x68 [em28xx_alsa]
[<f8aa8674>] snd_pcm_do_start+0x1c/0x23 [snd_pcm]
[<f8aa85d7>] snd_pcm_action_single+0x25/0x4b [snd_pcm]
[<f8aa9833>] snd_pcm_action+0x6a/0x76 [snd_pcm]
[<f8aa98f5>] snd_pcm_start+0x14/0x16 [snd_pcm]
[<f8aae10e>] snd_pcm_lib_read1+0x66/0x273 [snd_pcm]
[<f8aac5a3>] ? snd_pcm_kernel_ioctl+0x46/0x5f [snd_pcm]
[<f8aae4a7>] snd_pcm_lib_read+0xbf/0xcd [snd_pcm]
[<f8aad774>] ? snd_pcm_lib_read_transfer+0x0/0xaf [snd_pcm]
[<f89feeb6>] snd_pcm_oss_read3+0x99/0xdc [snd_pcm_oss]
[<f89fef9c>] snd_pcm_oss_read2+0xa3/0xbf [snd_pcm_oss]
[<c064169d>] ? _cond_resched+0x8/0x32
[<f89ff0be>] snd_pcm_oss_read+0x106/0x150 [snd_pcm_oss]
[<f89fefb8>] ? snd_pcm_oss_read+0x0/0x150 [snd_pcm_oss]
[<c048c6e2>] vfs_read+0x81/0xdc
[<c048c7d6>] sys_read+0x3b/0x60
[<c04039bf>] sysenter_do_call+0x12/0x34
=======================

The culprit in the trace is snd_pcm_action() which invokes a spin lock
which disables pre-emption which disables an IRQ which causes the
__might_sleep() function to fail the irqs_disabled() test. Since
pre-emption is enabled then it is safe to de-allocate the memory if
you first unlink each URB. In this instance you are safe since
pre-emption is disabled. If pre-emption and irqs are not disabled then
call usb_kill_urb(), else call usb_unlink_urb().

Thanks to Douglas for tracking down this bug originally!!!

[dougsland@redhat.com: Fixed codyingstyle]
Signed-off-by: Robert Krakora <rob.krakora@messagenetsystems.com>
Signed-off-by: Douglas Schilling Landgraf <dougsland@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
7e4b15e4201a101840c226dafe0d3df7ee652bf6 19-Jan-2009 Robert Krakora <rob.krakora@messagenetsystems.com> V4L/DVB (10256): em28xx: Fix for KWorld 330U AC97

Fix for KWorld 330U AC97

Many thanks to Devin and Mauro again!!!

Signed-off-by: Robert Krakora <rob.krakora@messagenetsystems.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
8866f9cf8d85f3614855a49b9d9056f265d0cd33 13-Jan-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (10228): em28xx: fix audio output PCM IN selection

Some em28xx devices use the PCM IN AC 97 PIN for digital audio. However,
currently, the PCM IN selection is not set by the driver. This patch allows
specifying the PCM IN expected output, via board description table.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
26cdc76b2c0b24f7a9c33ab226ca6e4bbae3dbbb 05-Jan-2009 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (10177): Fix sparse warnings on em28xx

/home/v4l/master/v4l/em28xx-core.c:396:25: warning: symbol 'outputs' was not declared. Should it be static?
/home/v4l/master/v4l/em28xx-input.c:324:6: warning: symbol 'em28xx_ir_start' was not declared. Should it be static?
/home/v4l/master/v4l/em28xx-cards.c:1925:5: warning: symbol 'em28xx_init_dev' was not declared. Should it be static?

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>
de84830e6959b046a99da3be12246458f4ab9825 30-Dec-2008 Devin Heitmueller <dheitmueller@linuxtv.org> V4L/DVB (10125): em28xx: Don't do AC97 vendor detection for i2s audio devices

The current code was trying to query the AC97 registers for the vendor
information even if it was clearly not a AC97 audio device (resulting in errors
in the dmesg output). This was due to a bug in the way we did the check.

Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
62f3e69bd5ff9db1574356a84895324ab3896e44 30-Dec-2008 Devin Heitmueller <dheitmueller@linuxtv.org> V4L/DVB (10122): em28xx: don't load em28xx-alsa for em2870 based devices

Like the em2874, the em2870 does not have any analog support, so don't bother
loading the em28xx-alsa module.

Signed-off-by: Devin Heitmueller <dheitmueller@linuxtv.org>
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>
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>
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>
9e5d6760c28409dd4ebd1cbafee77e5f58d6d574 26-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9756): em28xx: Improve register log format

Change log format to look more like URB transactions. In fact, setup and
IN/OUT transactions are merged. This helps to debug the driver.

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>
f502e861849ade3a128964410c87acedf437a6a1 27-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9763): em28xx: fix gpio settings

A previous changeset moved gpio from em28xx struct into em28xx_board.
However, the driver were not updated to properly honor those gpio's.

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>
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>
a2070c665459ac37a36bebae5e97bb4a2568990e 25-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9747): em28xx: Properly handles XCLK and I2C speed

The previous patches removed XCLK and I2C magic. Now, we finally know
what those registers do. Also, only a very few cards need different
setups for those.

Instead of keeping the setups for those values inside the per-device
hack magic switch, move the uncommon values to the board-specific
struct, and have a common setup for all other boards.

So, almost 100 lines of hacking magic were removed.

A co-lateral effect of this patch is that it also fixes a bug at em28xx-core, where xclk
were set, without taking any care about not overriding a previous xclk setup.

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>
209acc02249d831e7f2e3d8083b6b562dde5fc6f 20-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9671): em28xx: Add detection of Sigmatel Stac97xx series of AC97 devices

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>
f1990a9c39d957e6896fc506fc5388b7f302c429 20-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9669): em28xx: Fix a stupid cut-and-paste error

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
b69724899440289ab258ff417c2d6aa104c70310 20-Nov-2008 Devin Heitmueller <devin.heitmueller@gmail.com> V4L/DVB (9657): em28xx: add a functio to write on a single register

Introduce a new function that writes to a single register. This is
useful because the vast majority of register writes are a single
register, and this format permits or'ing register value bits together.

Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
5faff78904d9c07f38ac0e227b322e9f58d5447c 20-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9653): em28xx: improve AC97 handling

AC97 devices provide several input and outputs. However, before this
patch, em28xx device weren't properly allowing the usage of ac97
possible combinations. Also, several input volumes were left untouched,
instead of making sure that the volumes were set on mute state.

This patch improves support for ac97 devices by allowing to use any
inputs, and making sure that unused inputs are set on mute state.

Yet, some work is still needed to select the AC97 output.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
16c7bcadff2222b297d13951dc30e133f56d0154 20-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9652): em28xx: merge AC97 vendor id's into a single var

This makes easier to identify vendor ID, since AC97 vendors are
generally identified by 3 bytes. The remaining byte is used by the
vendor to identify its devices.

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>
897511139634b96a5980420f5d37972589a19f17 18-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9643): em28xx: remove the previous register names

Previously, AC97 registers were named as if they were part of em28xx
device, generating some confusion. Replace such names for a more general
naming convention.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
ebef13d480f0223512963ee785bd93770d404fe3 12-Nov-2008 Devin Heitmueller <devin.heitmueller@gmail.com> V4L/DVB (9589): Properly support capture start on em2874

Properly support capture start on em2874

The transport stream enable register moved in the em2874, so make it work
properly.

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>
6a1acc3bc5144e004996029b20e46e6020d128a7 12-Nov-2008 Devin Heitmueller <devin.heitmueller@gmail.com> V4L/DVB (9584): Support different GPIO/GPO registers for newer devices

Empia moved the location of the GPIO/GPO registers in newer devices. Add the
ability to specify the relocated registers (including caching of register
contents).

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>
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>
c4a98793a63c423c9e1af51822325969e23c16d4 18-Nov-2008 Mauro Carvalho Chehab <mchehab@redhat.com> V4L/DVB (9646): em28xx: avoid allocating/dealocating memory on every control urb

Before this patch, every register setup on em28xx were dynamically
allocating a temporary buffer for control URB's to be handled.

To avoid this ping-pong, use, instead a pre-allocated buffer.

Also, be sure that read control URB's also use the buffer, instead of
relying on a stack buffer.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
3f9b46c154da5ec4facca88f82d1820eb329fd3e 15-Nov-2008 Devin Heitmueller <devin.heitmueller@gmail.com> V4L/DVB (9632): make em28xx aux audio input work

The attached patch makes the em28xx auxillary audio input work.
Tested with the HVR-950.

em28xx: make auxillary audio input work

The tuner audio input was working but the aux input wasn't. Tested with
the HVR-950.

Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
094f9b4b317b235b8d7fa03b356b9a3f3633b55b 25-Apr-2008 Janne Grunau <janne-dvb@grunau.be> V4L/DVB (7734): em28xx: copy and paste error in em28xx_init_isoc

Fixes a copy and paste error in check of kzalloc return value. The check block
was copied from the previous allocation but the variable wasn't exchanged.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
4269a8eed210d143298baf80185317fc1dcb25ca 21-Apr-2008 Devin Heitmueller <devin.heitmueller@gmail.com> V4L/DVB (7652): em28xx: Drop the severity level of the "urb resubmit failed"

em28xx-core.c
- Drop the severity level of the "urb resubmit failed" to debug, since it
occurs every time a stream disconnects, which fills the dmesg log

Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com>
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>
82ac4f876505615ba9dc6a73cd9a584bad8fe23f 18-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7614): em28xx-core: fix some debug printk's that wrongly received KERN_INFO

Those printk's were adding more info to a line that were already being
printed.

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>
7640ea99339c687864f6131598e2eee2ca73cb9c 18-Apr-2008 Devin Heitmueller <devin.heitmueller@gmail.com> V4L/DVB (7609): em28xx-core: speed-up firmware load

em28xx-core.c:
- Remove sleep in i2c message routine which slows down i2c by a factor
10x. Load time for BASE firmware went from 13s to .973s

Signed-off-by: Devin Heitmueller <devin.heitmueller@gmail.com>
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>
102a0b0879a01a413ed5f667f7db9c2085ca8474 18-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7604): em28xx-dvb: Fix analog mode

The analog entries are wrong. Fix it.

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>
ee6e3a865a469c78daa93a1e6cdbaca3a102f9c8 18-Apr-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7595): Improve generic support for setting gpio values

em28xx based devices with xc3028 may require some specific gpio values.
This patch adds a generic handling for such values.

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>
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>
2c4a07b2da61bcd33f18195ff7f355c5bb285904 22-Apr-2008 Sascha Sommer <saschasommer@freenet.de> V4L/DVB (7331): Fix em2800 altsetting selection

Signed-off-by: Sascha Sommer <saschasommer@freenet.de>
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>
46cb57e62824a8d6f9e12bedc98c41738a1478ce 04-Mar-2008 Andrew Morton <akpm@linux-foundation.org> V4L/DVB (7291): em28xx: correct use of and fix

be less silly while we're there.

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
8281db3b52c1b0e0bd249e8700cf35e64c1e13bd 27-Feb-2008 Julia Lawall <julia@diku.dk> V4L/DVB (7285): em28xx: Correct use of ! and &

In commit e6bafba5b4765a5a252f1b8d31cbf6d2459da337, a bug was fixed that
involved converting !x & y to !(x & y). The code below shows the same
pattern, and thus should perhaps be fixed in the same way.

This is not tested and clearly changes the semantics, so it is only
something to consider.

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@ expression E1,E2; @@
(
!E1 & !E2
|
- !E1 & E2
+ !(E1 & E2)
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
61b080d214c4dba91fb726169fb0c3f0e8de4b45 08-Feb-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7180): em28xx: add URB_NO_TRANSFER_DMA_MAP, since urb->transfer_dma is set

Thanks to Alan Stern <stern@rowland.harvard.edu> for pointing this issue.

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>
0da5176f4e0d5aea3e33a11a17c1847939df4dcc 06-Feb-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7161): em28xx: Fix printing debug values higher than 127

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
7463dda2ae868d3e0a6c98f65d6331481fc73ca3 06-Feb-2008 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (7158): Fix em28xx audio initialization

AC97 register initialization seem to always be needed. This patch fixes audio
for Prolink/Pixelview USB2 board.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
1685a6fed210b110ac8abeff24e2ffd1713cb3fb 05-Feb-2008 Andrew Morton <akpm@linux-foundation.org> V4L/DVB (7156): em28xx/em28xx-core.c: fix use of potentially uninitialized variable

drivers/media/video/em28xx/em28xx-core.c: In function 'em28xx_set_audio_source':
drivers/media/video/em28xx/em28xx-core.c:276: warning: 'no_ac97' may be used uninitialized in this function

This looks like a genuine bug to me.

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
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>
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>
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>
e7222ca9b4e6c6cdabedd8d33da59263ace85a02 15-Oct-2007 Florin Malita <fmalita@gmail.com> V4L/DVB (6350): V4L: possible leak in em28xx_init_isoc

Coverity (CID 1929) spotted the following: if a transfer buffer
allocation fails, the last allocated urb is leaked (it hasn't been
stored in dev->urb[] yet so em28xx_uninit_isoc misses it). The patch
also includes a small typo fix.

Signed-off-by: Florin Malita <fmalita@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
9c12224a607a4b22ab86784e3394b52810b9507c 21-Aug-2007 Mauro Carvalho Chehab <mchehab@infradead.org> V4L/DVB (6079): Cleanup: remove linux/moduleparam.h from drivers/media files

Since at least kernel 2.6.12-rc2, module.h includes moduleparm.h. This
patch removes all occurences of moduleparm.h from drivers/media files.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
7d12e780e003f93433d49ce78cfedf4b4c52adc5 05-Oct-2006 David Howells <dhowells@redhat.com> IRQ: Maintain regs pointer globally rather than passing to IRQ handlers

Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
of passing regs around manually through all ~1800 interrupt handlers in the
Linux kernel.

The regs pointer is used in few places, but it potentially costs both stack
space and code to pass it around. On the FRV arch, removing the regs parameter
from all the genirq function results in a 20% speed up of the IRQ exit path
(ie: from leaving timer_interrupt() to leaving do_IRQ()).

Where appropriate, an arch may override the generic storage facility and do
something different with the variable. On FRV, for instance, the address is
maintained in GR28 at all times inside the kernel as part of general exception
handling.

Having looked over the code, it appears that the parameter may be handed down
through up to twenty or so layers of functions. Consider a USB character
device attached to a USB hub, attached to a USB controller that posts its
interrupts through a cascaded auxiliary interrupt controller. A character
device driver may want to pass regs to the sysrq handler through the input
layer which adds another few layers of parameter passing.

I've build this code with allyesconfig for x86_64 and i386. I've runtested the
main part of the code on FRV and i386, though I can't test most of the drivers.
I've also done partial conversion for powerpc and MIPS - these at least compile
with minimal configurations.

This will affect all archs. Mostly the changes should be relatively easy.
Take do_IRQ(), store the regs pointer at the beginning, saving the old one:

struct pt_regs *old_regs = set_irq_regs(regs);

And put the old one back at the end:

set_irq_regs(old_regs);

Don't pass regs through to generic_handle_irq() or __do_IRQ().

In timer_interrupt(), this sort of change will be necessary:

- update_process_times(user_mode(regs));
- profile_tick(CPU_PROFILING, regs);
+ update_process_times(user_mode(get_irq_regs()));
+ profile_tick(CPU_PROFILING);

I'd like to move update_process_times()'s use of get_irq_regs() into itself,
except that i386, alone of the archs, uses something other than user_mode().

Some notes on the interrupt handling in the drivers:

(*) input_dev() is now gone entirely. The regs pointer is no longer stored in
the input_dev struct.

(*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does
something different depending on whether it's been supplied with a regs
pointer or not.

(*) Various IRQ handler function pointers have been moved to type
irq_handler_t.

Signed-Off-By: David Howells <dhowells@redhat.com>
(cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
adcb0fa2504aac35e0ed285147b11e75a6db34c7 22-May-2006 Adrian Bunk <bunk@stusta.de> V4L/DVB (3963): Em28xx/: possible cleanups

This patch contains the following possible cleanups:
- make the following needlessly global functions static:
- em28xx-core.c: em28xx_accumulator_set()
- em28xx-core.c: em28xx_capture_area_set()
- em28xx-core.c: em28xx_scaler_set()
- em28xx-core.c: em28xx_isocIrq()
- remove the following unused EXPORT_SYMBOL's:
- em28xx-cards.c: em28xx_boards
- em28xx-cards.c: em28xx_bcount
- em28xx-cards.c: em28xx_id_table

Signed-off-by: Adrian Bunk <bunk@stusta.de>
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>
9f38724a6f9a436ce25cb0dfceea4a615ee44fb6 07-Feb-2006 Markus Rechberger <mrechberger@gmail.com> V4L/DVB (3306): Fixed i2c return value, conversion mdelay to msleep

fixed i2c return value, conversion mdelay to msleep

Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
e8e41da46dca6b33e990b48ee379503d25b4da65 07-Feb-2006 Markus Rechberger <mrechberger@gmail.com> V4L/DVB (3306): Fixed i2c return value, conversion mdelay to msleep

fixed i2c return value, conversion mdelay to msleep

Signed-off-by: Markus Rechberger <mrechberger@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
cbcf749382a7bbf70b1bbf6eeb3234d1682c9f17 23-Jan-2006 Michael Krufky <mkrufky@m1k.net> V4L/DVB (3431): fixed spelling error, exectuted --> executed.

- fixed spelling error, exectuted --> executed.

Signed-off-by: Michael Krufky <mkrufky@m1k.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
3875818f832f568b1755d8a0ba20166cae5cd414 23-Jan-2006 Michael Krufky <mkrufky@m1k.net> V4L/DVB (3431): fixed spelling error, exectuted --> executed.

- fixed spelling error, exectuted --> executed.

Signed-off-by: Michael Krufky <mkrufky@m1k.net>
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>
d21838dd7d098e102ced2fafed62dcb133c4d71c 09-Jan-2006 Mauro Carvalho Chehab <mchehab@brturbo.com.br> V4L/DVB (3123b): syncs V4L subsystem tree with kernel

- This patch makes kernel in sync with v4l subsystem tree.
- some lines reordered to be sync.
- some reduntant codes removed.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
e8efb71d02d008a665ba88e6f75af691d9425e49 09-Jan-2006 Hans Verkuil <hverkuil@xs4all.nl> V4L (0978): 64-bit fixes for removing warnings on compat_ioctl32

- 64-bit fixes for removing warnings on compat_ioctl32.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
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>
8bcc247617deaf229962e9d663c69e65523519ab 15-Dec-2005 Al Viro <viro@ftp.linux.org.uk> [PATCH] em28xx: %zd for size_t

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
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>
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>
feff0485ebcf05b5af8a3c82aa5c361d9f8b6e75 09-Nov-2005 Mauro Carvalho Chehab <mchehab@brturbo.com.br> [PATCH] v4l: 864: improved isoc error detection

- Improved isoc error detection.

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>
02f7427333c5784a937314a305132ed31cc6b9d1 09-Nov-2005 Markus Rechberger <mrechberger@gmail.com> [PATCH] v4l: 802: replaced kmalloc kfree with usb buffer alloc usb buffer free to get

- Replaced kmalloc/kfree with usb_buffer_alloc/usb_buffer_free to get

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>
55b8b2d173adea54a9e8407f26630c19274fa0b6 09-Nov-2005 Paul Vriens <Paul.Vriens@xs4all.nl> [PATCH] v4l: 780: fixed typo in module param description

- Fixed typo in module param description

Signed-off-by: Paul Vriens <Paul.Vriens@xs4all.nl>
Signed-off-by: Nickolay V. Shmyrev <nshmyrev@yandex.ru>
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>
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>