Commit Graph

4794 Commits (92a8337b380f0978ac81f096d6324d3ad689f83e)

Author SHA1 Message Date
Robert Jarzmik 92a8337b38 V4L/DVB (11319): pxa_camera: Enforce YUV422P frame sizes to be 16 multiples
Due to DMA constraints, the DMA chain always transfers bytes
from the QCI fifos to memory in 8 bytes units. In planar
formats, that could mean 0 padding between Y and U plane
(and between U and V plane), which is against YUV422P
standard.

Therefore, a frame size is required to be a multiple of 16
(so U plane size is a multiple of 8). It is enforced in
try_fmt() and set_fmt() primitives, be aligning height then
width on 4 multiples as need be, to reach a 16 multiple.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-04-06 21:43:44 -03:00
Alexey Dobriyan 99b7623380 proc 2/2: remove struct proc_dir_entry::owner
Setting ->owner as done currently (pde->owner = THIS_MODULE) is racy
as correctly noted at bug #12454. Someone can lookup entry with NULL
->owner, thus not pinning enything, and release it later resulting
in module refcount underflow.

We can keep ->owner and supply it at registration time like ->proc_fops
and ->data.

But this leaves ->owner as easy-manipulative field (just one C assignment)
and somebody will forget to unpin previous/pin current module when
switching ->owner. ->proc_fops is declared as "const" which should give
some thoughts.

->read_proc/->write_proc were just fixed to not require ->owner for
protection.

rmmod'ed directories will be empty and return "." and ".." -- no harm.
And directories with tricky enough readdir and lookup shouldn't be modular.
We definitely don't want such modular code.

Removing ->owner will also make PDE smaller.

So, let's nuke it.

Kudos to Jeff Layton for reminding about this, let's say, oversight.

http://bugzilla.kernel.org/show_bug.cgi?id=12454

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-03-31 01:14:44 +04:00
Hans Verkuil fd3a019534 V4L/DVB (11316): saa7191: tuner ops wasn't set.
The tuner ops pointer wasn't set, so s_std never worked here.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:50 -03:00
Hans Verkuil 7c4673335b V4L/DVB (11315): cx25840: fix 'unused variable' warning.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:50 -03:00
Hans Verkuil 5eb35fd063 V4L/DVB (11312): tuner: remove V4L1 code from this driver.
No i2c modules are called with the V4L1 API anymore, so this can be removed.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:49 -03:00
Hans Verkuil bccfa449ae V4L/DVB (11311): v4l: replace 'ioctl' references in v4l i2c drivers
Replace 'VIDIOC_' references in v4l i2c drivers by their new v4l2_subdev
callback names.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:49 -03:00
Hans Verkuil 41c129a870 V4L/DVB (11310): cx18: remove intermediate 'ioctl' step
The audio and vbi parts still used an 'ioctl'-like interface. Replace this
with normal functions.

Cc: Andy Walls <awalls@radix.net>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:49 -03:00
Hans Verkuil df1d5ed8a8 V4L/DVB (11309): cx25840: cleanup: remove intermediate 'ioctl' step
The audio and vbi functions where still called through an ioctl-like
interface, even though this is no longer needed with v4l2-subdev. Just
change each 'case' into a proper function and call that directly.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:49 -03:00
Mauro Carvalho Chehab 2c26976d72 V4L/DVB (11308): msp3400: use the V4L2 header since no V4L1 code is there
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:49 -03:00
Hans Verkuil 43d5eab7d6 V4L/DVB (11305): cx88: prevent probing rtc and ir devices
tuner-core.c contains a hack for cx88 board to prevent probing of certain
addresses:

        /* HACK: Ignore 0x6b and 0x6f on cx88 boards.
         * FusionHDTV5 RT Gold has an ir receiver at 0x6b
         * and an RTC at 0x6f which can get corrupted if probed.
         */

With the new i2c API this hack no longer works. So instead change the
list of tuner probe addresses in the cx88 driver itself, which is much
more clean.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:49 -03:00
Hans Verkuil a0d1251da0 V4L/DVB (11304): v4l2: remove v4l2_subdev_command calls where they are no longer needed.
Several i2c drivers still used v4l2_subdev_command, even though they were
converted to v4l2_subdev. Remove those unused .command callbacks.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:49 -03:00
Hans Verkuil 267ea2a9dc V4L/DVB (11303): tda7432: remove legacy code for old-style i2c API
tda7432 is no longer used with the old-style i2c API, so I can remove
the support for that.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:49 -03:00
Hans Verkuil a61389134c V4L/DVB (11302): tda9875: remove legacy code for old-style i2c API
tda9875 is no longer used with the old-style i2c API, so I can remove
the support for that.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:48 -03:00
Hans Verkuil 4705e8c850 V4L/DVB (11301): wm8775: remove legacy code for old-style i2c API
All drivers that use wm8775 are now converted to v4l2_subdev, so I can remove
the support for the old-style i2c API.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:48 -03:00
Hans Verkuil b8341e1d2a V4L/DVB (11300): cx88: convert to v4l2_subdev.
Convert cx88 to use v4l2_subdev since the old i2c autoprobing mechanism
will be removed.

Added code to explicitly load tvaudio where needed. Also fix the rtc-isl1208
support: since that driver no longer supports autoprobing it has to be
loaded using the new i2c API.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:48 -03:00
Hans Verkuil b6198ade55 V4L/DVB (11298): cx25840: remove legacy code for old-style i2c API
All drivers that use cx25840 are now converted to v4l2_subdev, so I can remove
the support for the old-style i2c API.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:48 -03:00
Hans Verkuil 0d5a19f158 V4L/DVB (11297): cx23885: convert to v4l2_subdev.
Convert this driver to v4l2_subdev. Note that currently the only card with
analog support in this driver is the HVR-1800. The analog tuner support in
this driver is limited to what is needed for this board. When analog support
is added for other cards, then the tuner load code will probably have to be
expanded to take care of those boards. For example, there is currently no
support for either radio tuners or tda9887 demods.

I'd like to thank Steven Toth for testing this on his HVR-1800.

Tested-by: Steven Toth <stoth@linuxtv.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:48 -03:00
Steven Toth d35ed62704 V4L/DVB (11296): cx23885: bugfix error message if firmware is not found
If the firmware failed to be found the error message indicated
the incorrect filename.

Signed-off-by: Steven Toth <stoth@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:48 -03:00
Hans Verkuil c0714f6cc6 V4L/DVB (11295): cx23885: convert to v4l2_device.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:48 -03:00
Márton Németh 8bbd90ce80 V4L/DVB (11293): uvcvideo: Add zero fill for VIDIOC_ENUM_FMT
When enumerating formats with VIDIOC_ENUM_FMT the uvcvideo driver does not
fill the reserved fields of the struct v4l2_fmtdesc with zeros as required by
V4L2 API revision 0.24 [1]. Add the missing initializations.

The patch was tested with v4l-test 0.10 [2] with CNF7129 webcam found on EeePC
901.

References:
[1] V4L2 API specification, revision 0.24
    http://v4l2spec.bytesex.org/spec/r8367.htm

[2] v4l-test: Test environment for Video For Linux Two API
    http://v4l-test.sourceforge.net/

Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:48 -03:00
Laurent Pinchart 0ce566da77 V4L/DVB (11292): uvcvideo: Add support for Syntek cameras found in JAOtech Smart Terminals
Signed-off-by: Laurent Pinchart <laurent.pinchart@skynet.be>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:47 -03:00
Hans Verkuil aef822074b V4L/DVB (11283): saa6588: remove legacy code.
saa6588 is now only used through v4l2_subdev, so we can remove the old legacy
code.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:47 -03:00
Hans Verkuil 2983baf8d6 V4L/DVB (11282): saa7134: add RDS support.
The Terratec Cinergy 600 TV MK3 supports the RDS decoder saa6588.
Add support to saa7134 for such devices.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:47 -03:00
Hans Verkuil ffe84b7a31 V4L/DVB (11281): bttv: move saa6588 config to the helper chip config
saa6588 can also be used by other drivers than just bttv. Move it to a
new RDS decoders category and add it as helper chip to bttv.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:46 -03:00
Hans Verkuil 893cce04b7 V4L/DVB (11279): bttv: tda9875 is no longer used by bttv, so remove from bt8xx/Kconfig.
Since tda9875 support was merged into tvaudio the bttv driver no
longer needs tda9875 as helper driver.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:46 -03:00
Hans Verkuil 859f0277a6 V4L/DVB (11278): bttv: convert to v4l2_subdev since i2c autoprobing will disappear.
Since i2c autoprobing will disappear bttv needs to be converted to use
v4l2_subdev instead.

Without autoprobing the autoload module option has become obsolete. A warning
is generated if it is set, but it is otherwise ignored.

Since the bttv card definitions are of questionable value a new option was
introduced to allow the user to control which audio module is selected:
msp3400, tda7432 or tvaudio (or none at all).

By default bttv will use the card definitions and fallback on tvaudio as the
last resort.

If no audio device was found a warning is printed.

The saa6588 RDS device is now also explicitly probed since it is no longer
possible to autoprobe it. A new saa6588 module option was added to override
the card definition since I suspect more cards have this device than one
would guess from the card definitions.

Note that the probe addresses of the i2c modules are hardcoded in this
driver. Once all v4l drivers are converted to v4l2_subdev this will be
cleaned up. Such data belongs in an i2c driver header.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:46 -03:00
Hans Verkuil e4129a9cce V4L/DVB (11277): tvaudio: always call init_timer to prevent rmmod crash.
In the tvaudio_remove function del_timer_sync(&chip->wt) is called.
However, chip->wt isn't always initialized depending on the type of
audio chip. Since del_timer_sync hangs when given an uninitialized timer
we should always initialize it.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:46 -03:00
Hans Verkuil 411674fd18 V4L/DVB (11276): tvaudio: add tda9875 support.
This change allows bttv to use tvaudio for this device. Since this device
has the same i2c address as the tda9874 we need to support both in the same
tvaudio driver. This makes it possible for tvaudio to detect which chip is
used. Originally the tda9875 was only available in the dedicated tda9875
driver, but that makes life very hard for bttv since loading tvaudio might
misdetect a tda9875 as a tda9874.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:46 -03:00
Hans Verkuil 5fa7b9f3c0 V4L/DVB (11275): tvaudio: fix mute and s/g_tuner handling
The mute control depends on CHIP_HAS_INPUTSEL, so test for that first.

The s/g_tuner code should check whether getmode/setmode is set at the
beginning instead of filling in the struct and discovering at
the end that this chip doesn't implement audiomodes after all (i.e. is
a simple muxer chip).

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:46 -03:00
Trent Piepho 8f84a775c2 V4L/DVB (11272): zr364xx: Remove code for things already done by video_ioctl2
The ->vidioc_(s|g|try|enum)_fmt_vid_cap() methods are only called on
VIDEO_CAPTURE buffers.  Thus, there is no need to check or set the buffer's
'type' field since it must already be set to VIDEO_CAPTURE.  Checking the
buffer type can be removed from zr364xx_vidioc_(s|g|try|enum)_fmt_vid_cap().

The v4l2 core code in v4l2_ioctl will zero out the structure the driver is
supposed to fill in for read-only ioctls.  For read/write ioctls, all the
fields which aren't supplied from userspace will be zeroed out.

Zeroing code can be removed from zr364xx_vidioc_querycap(),
zr364xx_vidioc_enum_input(), zr364xx_vidioc_enum_fmt_vid_cap(), and
zr364xx_vidioc_g_fmt_vid_cap().

Cc: Antoine Jacquet <royale@zerezo.com>
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:46 -03:00
Trent Piepho 975f5766be V4L/DVB (11271): usbvision: Remove buffer type checks from enum_fmt_vid_cap, XXXbuf
The v4l2-ioctl core only allows buffer types for which the corresponding
->vidioc_try_fmt_xxx() methods are defined to be used with
vidioc_(q|dq|query)buf() and vidioc_reqbufs().

Since this driver only defines ->vidioc_try_fmt_vid_cap() the checks can be
removed from vidioc_reqbufs(), vidioc_qbuf(), and vidioc_dqbuf().

The ->vidioc_(s|g|try|enum)_fmt_vid_cap() methods are only called on
VIDEO_CAPTURE buffers.  Thus, there is no need to check or set the buffer's
'type' field since it must already be set to VIDEO_CAPTURE.  So setting the
buffer type in vidioc_enum_fmt_vid_cap() can be removed.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:46 -03:00
Trent Piepho 6174523c59 V4L/DVB (11270): meye: Remove buffer type checks from XXX_fmt_vid_cap, XXXbuf
The ->vidioc_(s|g|try|enum)_fmt_vid_cap() methods are only called on
VIDEO_CAPTURE buffers.  Thus, there is no need to check or set the buffer's
'type' field since it must already be set to VIDEO_CAPTURE.

The v4l2-ioctl core only allows buffer types for which the corresponding
->vidioc_try_fmt_xxx() methods are defined to be used with
vidioc_(q|dq|query)bufs() and vidioc_reqbufs().

Since this driver only defines ->vidioc_try_fmt_vid_cap() the checks can be
removed from vidioc_reqbufs(), vidioc_querybuf(), vidioc_qbuf(), and
vidioc_dqbuf().  Also, the buffer index is unsigned so it's not necessary
to check if it is less than zero.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:45 -03:00
Trent Piepho 185cda9666 V4L/DVB (11269): cx88-blackbird: Stop setting buffer type in XXX_fmt_vid_cap
The ->vidioc_(s|g|try|enum)_fmt_vid_cap() methods are only called on
VIDEO_CAPTURE buffers.  Thus, there is no need to check or set the 'type'
field since it must already be set to VIDEO_CAPTURE.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:45 -03:00
Trent Piepho f29816bc31 V4L/DVB (11268): cx23885-417: Don't need to zero ioctl parameter fields
The v4l2 core code in v4l2_ioctl will zero out the structure the driver is
supposed to fill in for read-only ioctls.  For read/write ioctls, all the
fields which aren't supplied from userspace will be zeroed out.

Zeroing code is removed from enum_input, g_tuner, g_frequency, querycap,
enum_fmt_vid_cap, g_fmt_vid_cap, and try_fmt_vid_cap.

The ->vidioc_(s|g|try|enum)_fmt_vid_cap() methods are only called on
VIDEO_CAPTURE buffers.  Thus, there is no need to check or set the buffer's
'type' field since it must already be set to VIDEO_CAPTURE.

There also appeared to be a copy and paste error in
vidioc_try_fmt_vid_cap() that would set f->fmt.pix.sizeimage to zero.

Note that the s_fmt_vid_cap method doesn't appear to actually do anything.
Whatever parameters were requested are just silently ignored.  Was this
intentional?  Who knows, as the commit log entry for the driver just says,
"Add generic cx23417 hardware encoder support." There are no docs.  A
comment like "this driver totally ignores the v4l2 spec w.r.t.
VIDIOC_S_FMT because ..." would have gone a long way.

Cc: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:45 -03:00
Trent Piepho e33ee31ac3 V4L/DVB (11267): cafe_ccic: Remove buffer type check from XXXbuf
The v4l2-ioctl core only allows buffer types for which the corresponding
->vidioc_try_fmt_xxx() methods are defined to be used with
vidioc_(q|dq|query)bufs() and vidioc_reqbufs().

This driver only defines ->vidioc_try_fmt_vid_cap() so only VIDEO_CAPTURE
buffers are allowed to be used with cafe_vidioc_reqbufs(),
cafe_vidioc_querybuf(), cafe_vidioc_qbuf(), and cafe_vidioc_dqbuf().

The ->vidioc_(s|g|try|enum)_fmt_vid_cap() methods are only called on
VIDEO_CAPTURE buffers.  Thus, there is no need to check or set the buffer's
'type' field since it must already be set to VIDEO_CAPTURE.  So the
check in cafe_vidioc_enum_fmt_vid_cap() can be removed.

The 'index' field of v4l2_buffer is unsigned so the checks for it being
less than zero can be removed too.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:45 -03:00
Trent Piepho 4f5a7444ba V4L/DVB (11266): vino: Remove code for things already done by video_ioctl2
The v4l2-ioctl core only allows buffer types for which the corresponding
->vidioc_try_fmt_xxx() methods are defined to be used in vidioc_(g|s)_parm,
vidioc_(q|dq|query)buf, and vidioc_reqbufs.

Remove buffer type checking from vino_g_parm(), vino_s_parm(),
vino_reqbufs(), vino_querybuf(), vino_qbuf(), and vino_dqbuf().  This
reduced the indent level of the code so a few lines can be wrapped better.
Also fixed the C++ type comments.

The v4l2-ioctl core also provides structs that have been pre-zeroed for all
fields that driver is supposed to fill in, so remove zeroing code from
vino_enum_fmt_vid_cap().  Also, the format index is unsigned so it's not
necessary to check if it's less than zero.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:45 -03:00
Trent Piepho 2509e1cb33 V4L/DVB (11265): stkwebcam: Remove buffer type check from g_parm and q/dq/reqbufs
The v4l2-ioctl core only allows buffer types for which the corresponding
->vidioc_try_fmt_xxx() methods are defined to be used with
vidioc_(q|dq|query)bufs(), vidioc_reqbufs() and now vidioc_(s|g)_parm.

This driver only defines ->vidioc_try_fmt_vid_cap() so only VIDEO_CAPTURE
buffers are allowed to be used with vidioc_g_parm(), vidioc_qbuf(),
vidioc_dqbuf(), and vidioc_reqbufs().

Cc: Jaime Velasco Juan <jsagarribay@gmail.com>
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:45 -03:00
Trent Piepho 020b882b1d V4L/DVB (11264): omap24xxcam: Remove buffer type check from vidioc_s/g_parm
The v4l2-ioctl core now only allows buffer types for which the corresponding
->vidioc_try_fmt_xxx() methods are defined to be used in vidioc_(g|s)_parm.

This driver only defines ->vidioc_try_fmt_vid_cap() so only VIDEO_CAPTURE
buffers are allowed to be used with vidioc_s_parm() and vidioc_g_parm().

Cc: Sakari Ailus <sakari.ailus@nokia.com>
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:45 -03:00
Trent Piepho 5a27578667 V4L/DVB (11263): gspca: Stop setting buffer type, and avoid memset in querycap
The v4l2-ioctl core checks the buffer type now by only allowing buffer
types for which the corresponding ->vidioc_try_fmt_xxx() methods are
defined.

This driver only defines ->vidioc_try_fmt_vid_cap() so only VIDEO_CAPTURE
buffers are allowed to be used with vidioc_g_parm.  Also,
->vidioc_enum_fmt_vid_cap() is only called for VIDEO_CAPTURE buffers.
There is no need to set the buffer type since it must already be the
correct value.

The struct which ->vidioc_querycap() is supposed to fill in is already
zeroed so it's not necessary to call memset on it.

Cc: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:44 -03:00
Trent Piepho 601bc29845 V4L/DVB (11262): bttv: Remove buffer type check from vidioc_g_parm
The v4l2-ioctl core only allows buffer types for which the corresponding
->vidioc_try_fmt_xxx() methods are defined to be used with
vidioc_(q|dq|query)bufs(), vidioc_reqbufs() and now vidioc_(s|g)_parm.

The driver was only allowing VIDEO_CAPTURE buffers for g_parm, but since
the driver defines ->vidioc_try_fmt_vid_overlay() and
->vidioc_try_fmt_vbi_cap() it will now allow VIDEO_OVERLAY and VBI_CAPTURE
buffers as well.  This should be fine as the driver only fills in the frame
rate field, which is just as valid for video overlay and vbi capture as it
is for video capture.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:44 -03:00
Trent Piepho 34796bc009 V4L/DVB (11260): v4l2-ioctl: Check format for S_PARM and G_PARM
Return EINVAL if VIDIOC_S/G_PARM is called for a buffer type that the
driver doesn't define a ->vidioc_try_fmt_XXX() method for.  Several other
ioctls, like QUERYBUF, QBUF, and DQBUF, etc.  do this too.  It saves each
driver from having to check if the buffer type is one that it supports.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:44 -03:00
Hans Verkuil 3fd8ab30c1 V4L/DVB (11256): dabusb: fix compile warning.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:44 -03:00
Hans Verkuil 5fed935c4e V4L/DVB (11254): cs53l32a: remove legacy support.
All drivers that use this device have been converted to v4l2_subdev, so
there is no more need to support autoprobing on kernels >= 2.6.22.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:44 -03:00
Hans Verkuil 195784b8ef V4L/DVB (11253): saa7134: fix RTD Embedded Technologies VFG7350 support.
This card has the saa6752hs on 7-bit address 0x21 instead of 0x20. Add
support in the card definition struct to select which address to use and
update the definitions accordingly.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:44 -03:00
Michael Krufky e7ddcd98a1 V4L/DVB (11251): tuner: prevent invalid initialization of t->config in set_type
Drivers that don't set "config" directly in the set_type function will
end up with an invalid configuration value. Check that the value is sane,
otherwise initialize to 0.

Thanks to James Edward Geiger & Steven Toth for reporting this bug.

Cc: Steven Toth <stoth@linuxtv.org>
Cc: James Edward Geiger <james.e.geiger@gmail.com>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:43 -03:00
Janne Grunau 7d771ff0dc V4L/DVB (11247): hdpvr: empty internal device buffer after stopping streaming
Makes the next capturing starting faster and more reliable.

Signed-off-by: Janne Grunau <j@jannau.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:43 -03:00
Janne Grunau 9ef77adfb9 V4L/DVB (11246): hdpvr: convert printing macros to v4l2_* with struct v4l2_device
it gives us a nice and unique prefix per device

Signed-off-by: Janne Grunau <j@jannau.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:43 -03:00
Janne Grunau 06630aec92 V4L/DVB (11245): hdpvr: add struct v4l2_device
Signed-off-by: Janne Grunau <j@jannau.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:43 -03:00
Alan Cox fbc0ae205c V4L/DVB (11243): cx88: Missing failure checks
The ioremap one was reported in October 2007 (Bug 9146), the kmalloc one
was blindingly obvious while looking at the ioremap one

The bug suggests some other configuration for lots of I/O memory (32MB per
device is ioremapped) but I'll leave that to the real maintainers

Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:43 -03:00
Daniel Glöckner c01f1a5a24 V4L/DVB (11242): allow v4l2 drivers to provide a get_unmapped_area handler
Shared memory mappings on nommu machines require a get_unmapped_area
file operation that suggests an address for the mapping. This patch
adds a way for v4l2 drivers to provide this callback.

Signed-off-by: Daniel Glöckner <dg@emlix.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-03-30 12:43:43 -03:00