Antti Palosaari [Sat, 10 Feb 2007 13:19:11 +0000 (10:19 -0300)]
V4L/DVB (5217): Zl10353: Implement TRL nominal rate calculation
Implement trl nominal rate calculation to Zarlink ZL10353 demod,
based on calculation used in Zarlink MT352.
This adds support for 6 and 8MHz bandwidth transponders.
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Antti Palosaari [Sat, 10 Feb 2007 13:19:08 +0000 (10:19 -0300)]
V4L/DVB (5216): Zl10353: add i2c_gate_ctrl support
Implement I2C gate control for Megasky GL861 and SigmaTek AU6610 support.
Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Chris Pascoe [Sat, 10 Feb 2007 13:17:57 +0000 (10:17 -0300)]
V4L/DVB (5215): Experimental support for signal strength/BER/uncorrectable count
After studying many hours worth of register dumps of MT352 and ZL10353 fed
with identically damaged RF signals I have made an educated guess at which
registers contain the AGC level, bit error rate and uncorrectable error
count values.
Implement the IOCTLs that return these values to userspace.
Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Thu, 8 Feb 2007 05:02:53 +0000 (02:02 -0300)]
V4L/DVB (5212): Pvrusb2: Be more forgiving about encoder firmware size
The pvrusb2 driver previously rejected encoder firmware whose size was
not a multiple of 8192. But this is a false check because it's
possible to find cx23416 firmware whose size doesn't conform to this
limit. So change the firmware loader implementation to be more
forgiving of the image size.
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Thu, 8 Feb 2007 04:48:57 +0000 (01:48 -0300)]
V4L/DVB (5210): Pvrusb2: Fix printk format typo
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
akpm@linux-foundation.org [Thu, 8 Feb 2007 17:36:57 +0000 (14:36 -0300)]
V4L/DVB (5209): Kthread api conversion for dvb_frontend and av7110 fix
avoid double-up(), pointed out by Oliver.
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Herbert Poetzl [Thu, 8 Feb 2007 17:32:43 +0000 (14:32 -0300)]
V4L/DVB (5208): Kthread API conversion for dvb_frontend and av7110
dvb kernel_thread to kthread API port.
It is running fine here, including module load/unload and software suspend
(which doesn't work as expected with or without this patch :).
I didn't convert the dvb_ca_en50221 as I do not have such an interface, but
if the conversion process is fine with the v4l-dvb maintainers, it should not
be a problem to send a patch for that too ...
Acked-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Herbert Poetzl <herbert@13thfloor.at>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Thierry MERLE [Wed, 7 Feb 2007 13:14:38 +0000 (10:14 -0300)]
V4L/DVB (5206): Usbvision: set alternate interface modification
- usb alternate selection modified to get the biggest endpoint packet size.
- fix sysfs get values for brightness/contrast/hue/saturation
Signed-off-by: Thierry MERLE <thierry.merle@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Thierry MERLE [Wed, 7 Feb 2007 13:13:11 +0000 (10:13 -0300)]
V4L/DVB (5205): Usbvision: dynamic allocation for frames
- fix decoder route output
- dynamic frame buffer allocation
Signed-off-by: Thierry MERLE <thierry.merle@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Adrian Bunk [Wed, 7 Feb 2007 00:53:31 +0000 (21:53 -0300)]
V4L/DVB (5200): V4l_printk_ioctl_arg() is no longer used.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Schimek [Wed, 7 Feb 2007 12:15:01 +0000 (09:15 -0300)]
V4L/DVB (5204): Change videodev2.h licence to dual GPL/BSD
videodev2.h contains just the V4L2 API structs and defines.
By allowing this header file to be dual GPL/BSD will enable sharing
userspace apps between Linux and *BSD systems. It will also allow developing
newer BSD licensed drivers that can be shared on Linux and *BSD.
It should be noticed that most of the current V4L drivers, and v4l core
itself are GPL only. This won't be changed by this patch.
Signed-off-by: Michael H. Schimek <mschimek@gmx.at>
Signed-off-by: Gerd Hoffmann <kraxel@suse.de>
Signed-off-by: Bill Dirks <bill@thedirks.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Martin Rubli <mrubli@gmx.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Ahmed S. Darwish [Thu, 15 Feb 2007 00:57:42 +0000 (22:57 -0200)]
V4L/DVB (5202): DVB: Use ARRAY_SIZE macro when appropriate
Use ARRAY_SIZE macro already defined in kernel.h
Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
Acked-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Richard Knutsson [Wed, 7 Feb 2007 00:55:07 +0000 (21:55 -0300)]
V4L/DVB (5201): Radio/: Convert to generic boolean-values
Signed-off-by: Richard Knutsson <ricknu-0@student.ltu.se>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Adrian Bunk [Wed, 7 Feb 2007 00:53:04 +0000 (21:53 -0300)]
V4L/DVB (5199): Cx88-video.c: remove struct radionorms
This patch removes the unused struct radionorms.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Jonathan Corbet [Wed, 7 Feb 2007 00:52:36 +0000 (21:52 -0300)]
V4L/DVB (5198): Cafe_ccic.c fix warning
Quiet a spurious gcc warning.
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Richard Knutsson [Wed, 7 Feb 2007 00:52:04 +0000 (21:52 -0300)]
V4L/DVB (5197): Convert to generic boolean-values
Signed-off-by: Richard Knutsson <ricknu-0@student.ltu.se>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Andrew Morton [Wed, 7 Feb 2007 00:51:14 +0000 (21:51 -0300)]
V4L/DVB (5196): VIDEO_BUF depends on PCI
m68k allmodconfig:
drivers/media/video/video-buf.c: In function 'videobuf_queue_pci':
drivers/media/video/video-buf.c:396: error: 'pci_map_sg' undeclared (first use in this function)
drivers/media/video/video-buf.c:396: error: (Each undeclared identifier is reported only once
drivers/media/video/video-buf.c:396: error: for each function it appears in.)
drivers/media/video/video-buf.c:399: error: 'pci_dma_sync_sg_for_cpu' undeclared (first use in this function)
drivers/media/video/video-buf.c:401: error: 'pci_unmap_sg' undeclared (first use in this function)
drivers/media/video/video-buf.c: In function 'videobuf_pci_dma_map':
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Adrian Bunk [Wed, 7 Feb 2007 00:50:36 +0000 (21:50 -0300)]
V4L/DVB (5195): Frontends: make 4 functions static
This patch makes four needlessly global functions static.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Robert P. J. Day [Wed, 7 Feb 2007 00:46:54 +0000 (21:46 -0300)]
V4L/DVB (5193): Remove the unused kernel config option VIDEO_VIDEOBUF
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Marco Schluessler [Sat, 3 Feb 2007 17:47:14 +0000 (14:47 -0300)]
V4L/DVB (5189): Budget-av: Call saa7146_vv_release on exit
Call saa7146_vv_release on exit.
Signed-off-by: Marco Schluessler <marco@lordzodiac.de>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Oliver Endriss [Fri, 2 Feb 2007 22:12:53 +0000 (19:12 -0300)]
V4L/DVB (5188): Add separate configuration data for subsystem 0x13c2:0x1012
Fixed problem reported by Teemu Suikki:
After a device with subsystem 0x13c2:0x1012 has been installed,
devices with subsystem id 0x13c2:0x1011 did not work anymore.
Reason:
The driver for 0x13c2:0x1012 modified shared configuration data.
Fix:
Use separate configuration data for those devices.
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Ian Armstrong [Sat, 3 Feb 2007 09:37:25 +0000 (06:37 -0300)]
V4L/DVB (5184): Add cx23415 decoder register documentation
Many thanks to Ian Armstrong for figuring out what all these registers do.
Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Sat, 3 Feb 2007 09:35:07 +0000 (06:35 -0300)]
V4L/DVB (5183): Fix CC handling in VIDIOC_INT_G_VBI_DATA
When capturing a 60 Hz input the internal field ID is inverted. The
VIDIOC_INT_G_VBI_DATA didn't take that into account and so returned
XDS instead of CC and vice versa.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Sat, 3 Feb 2007 06:23:44 +0000 (03:23 -0300)]
V4L/DVB (5182): Remove #if 0 section from videodev2.h
Remove a section containing basically ideas for future sliced VBI standards.
This can be resurrected should any of this be actually implemented. For now
it only pollutes this header file.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Sat, 3 Feb 2007 06:19:14 +0000 (03:19 -0300)]
V4L/DVB (5181): Sliced VBI API no longer marked experimental.
The Sliced VBI API is no longer marked experimental. Introduced in 2.6.14
and with only a single modification in 2.6.19 I think we can consider this
API to be solid.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Fri, 2 Feb 2007 23:49:54 +0000 (20:49 -0300)]
V4L/DVB (5180): Fix cx2584x revision reporting.
Revisions >= 23 were always reported as revision 23.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Fri, 2 Feb 2007 23:42:02 +0000 (20:42 -0300)]
V4L/DVB (5179): Cx2341x encoder documentation update.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Sun, 28 Jan 2007 19:08:36 +0000 (16:08 -0300)]
V4L/DVB (5175): Pvrusb2: VIDIOC_DBG_[S|G]_REGISTER fixups
Support 64 bit register IDs internally. Only allow root access to
this API (for both set and get). Note that actual 64 bit access only
becomes possible once the definition for v4l2_register is updated, but
this change clears the way for it from the viewpoint of the pvrusb2
driver.
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Sun, 28 Jan 2007 18:42:56 +0000 (15:42 -0300)]
V4L/DVB (5174): Pvrusb2: video corruption fixes
Tweak the encoder setup in order to stop it from corrupting the video
data when there is a disruption in the data flow (e.g. a channel change).
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Sun, 28 Jan 2007 18:41:12 +0000 (15:41 -0300)]
V4L/DVB (5173): Pvrusb2: encoder comm protocol cleanup
Update the implementation of the communication protocol for operating
the encoder, using updated knowledge about the encoder.
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Sun, 28 Jan 2007 18:38:55 +0000 (15:38 -0300)]
V4L/DVB (5172): Pvrusb2: Control protocol cleanup
Several special-case FX2 commands were being issued through
pvr2_write_u16() and pvr2_write_8(), but there's really nothing
special case about them. These date from a very early time in the
driver development. This patch removes these functions and replaces
their use with calls to pvr2_send_request.
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Mon, 22 Jan 2007 05:18:54 +0000 (02:18 -0300)]
V4L/DVB (5170): Pvrusb2: Add boilerplate to new header file
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Mon, 22 Jan 2007 05:17:55 +0000 (02:17 -0300)]
V4L/DVB (5169): Pvrusb2: Use macro names for FX2 commands
This is a maintainability cleanup; use nice names for all the FX2
commands instead of raw bytes. This way we can easily find where we
issue FX commands.
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Trent Piepho [Wed, 31 Jan 2007 02:26:01 +0000 (23:26 -0300)]
V4L/DVB (5166): Remove obsolete alias defines of CONFIG_* settings
The out of tree v4l-dvb build system didn't always override the kernel's
configuration settings with v4l-dvb's settings correctly. To work around
this, makefiles would define some new macro based on the setting of a
config variable. e.g. the pwc Makefile would define CONFIG_PWC_DEBUG if
CONFIG_USB_PWC_DEBUG (which is defined via Kconfig) was set.
The v4l-dvb build system should now always override correctly, and this
is no longer necessary. This patch gets ride of these extra defines and
just uses the CONFIG_* settings directly.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Trent Piepho [Wed, 31 Jan 2007 02:25:46 +0000 (23:25 -0300)]
V4L/DVB (5164): Compat: Handle input_register_device() change and some others
input_register_device() was changed to return an error code instead of
being void in 2.6.15. Handle it with a macro wrapper in config.h. For
this to work, linux/input.h must be included before config.h. This
required some trivial header re-ordering in budget-ci.c and ttusb_dec.c.
In kernel 2.6.15-rc1 a helper function called setup_timer() was added to
linux/timer.h. Add to compat.h, but require that linux/timer.h be
included first to give the definition of struct timer_list.
A new 4GB DMA zone, __GFP_DMA32, was added in 2.6.15-rc2. Alias it to
__GFP_DMA on older kernels.
Handle another 2.6.15 "input_dev->dev to input_dev->cdev.dev" change for
some recently added code in cinergyT2.c.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Trent Piepho [Wed, 31 Jan 2007 02:25:41 +0000 (23:25 -0300)]
V4L/DVB (5163): Add checks for CAP_SYS_ADMIN to VIDIOC_DBG_G_REGISTER
Before, root privileges were only needed to set hardware registers, not
to read them. On some hardware, reading from the wrong place at the
wrong time can hang the machine. So, to be consistent, root privileges
are required to read registers on all hardware.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Trent Piepho [Wed, 31 Jan 2007 01:47:18 +0000 (22:47 -0300)]
V4L/DVB (5162): Change VIDIOC_DBG_[SG]_REGISTER ioctls' reg address to 64 bits
Maybe someday there will be a device with a register address space >
32-bits, or maybe an i2c device which uses a protocol > 4 bytes long to
address its registers.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Marco Schluessler [Wed, 31 Jan 2007 17:32:29 +0000 (14:32 -0300)]
V4L/DVB (5161): Dvb-ttpci: call saa7146_vv_release() on exit
Call saa7146_vv_release() on exit.
Signed-off-by: Marco Schluessler <marco@lordzodiac.de>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Marco Schluessler [Wed, 31 Jan 2007 17:27:55 +0000 (14:27 -0300)]
V4L/DVB (5160): Saa7146_vv: pass correct memory size to pci_free_consistent
Pass correct memory size to pci_free_consistent.
Signed-off-by: Marco Schluessler <marco@lordzodiac.de>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Oliver Endriss [Sun, 28 Jan 2007 00:13:06 +0000 (21:13 -0300)]
V4L/DVB (5158): Dvb-ttpci: Fixed unregistering the vbi device
Fixed unregistering the vbi device for cards without analog tuner.
Thanks to Marco Schluessler <marco@lordzodiac.de> for pointing out this bug.
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Matthias Schwarzott [Wed, 24 Jan 2007 23:49:58 +0000 (20:49 -0300)]
V4L/DVB (5157): Set phys, bustype, version, vendor and product for input device
Add phys-string, bustype, version, vendor and product to help udev and
others using EVIOCPHYS ioctl to identify the input device node.
Code taken (with little changes) from budget-ci.c
Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Schimek [Fri, 26 Jan 2007 11:30:05 +0000 (08:30 -0300)]
V4L/DVB (5156): Fix: dma free is being called with wrong arguments
Functions buffer_release() in bttv-driver.c and
vbi_buffer_release() in bttv-vbi.c are ending with:
bttv_dma_free(&fh->cap,fh->btv,buf);
For vbi it seems to be wrong. Both functions should end with:
bttv_dma_free(q,fh->btv,buf);
Thanks to Peter Schlaf <peter.schlaf@web.de> for pointing this.
Signed-off-by: Michael H. Schimek <mschimek@gmx.at>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Fri, 26 Jan 2007 10:33:07 +0000 (07:33 -0300)]
V4L/DVB (5155): Properly initialize mute and radio frequency
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Fri, 26 Jan 2007 10:23:44 +0000 (07:23 -0300)]
V4L/DVB (5154): Add some debug info, depending on debug level
With debug>0, it will show mute/unmute and set frequency events
with debug>=4, it will show get frequency events
Also, some kernel CodingStyle fixes were done.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Fri, 26 Jan 2007 10:07:12 +0000 (07:07 -0300)]
V4L/DVB (5153): Make it coherent with vidioc_g_tuner
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Thu, 25 Jan 2007 19:48:13 +0000 (16:48 -0300)]
V4L/DVB (5152): Implements VIDIOC_[S|G]_INPUT on radio-aztech/radio-maxiradio
fmtools use VIDIOCSTUNER, with, in turn, calls VIDIOC_S_INPUT on v4l1-compat.
So, those ioctls are required for V4L1 to work properly.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Thu, 25 Jan 2007 18:10:31 +0000 (15:10 -0300)]
V4L/DVB (5151): Implement VIDIOC_[GS]_AUDIO on aztech
v4l1-compat requires those two ioctls to translate VIDIOC[SG]RADIO
into V4L2 calls.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Thu, 25 Jan 2007 18:00:45 +0000 (15:00 -0300)]
V4L/DVB (5150): Implement VIDIOC_[GS]_AUDIO on maxiradio
v4l1-compat requires those two ioctls to translate VIDIOC[SG]RADIO
into V4L2 calls.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Thu, 25 Jan 2007 12:04:34 +0000 (09:04 -0300)]
V4L/DVB (5149): Convert radio-maxiradio to use video_ioctl2
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Thu, 25 Jan 2007 11:09:32 +0000 (08:09 -0300)]
V4L/DVB (5148): Convert radio-aztech to use video_ioctl2
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Thu, 25 Jan 2007 08:00:01 +0000 (05:00 -0300)]
V4L/DVB (5147): Make vivi driver to use vmalloced pointers
Before this patch, vivi were simulating a scatter gather DMA transfer.
While this is academic, showing how stuff really works on a real PCI
device, this means a non-optimized code.
There are only two memory models that vivi implements:
1) kernel alloced memory. This is also used by read() method.
On this case, a vmalloc32 buffer is allocated at kernel;
2) userspace allocated memory. This is used by most userspace apps.
video-buf will store this pointer.
a simple copy_to_user is enough to transfer data.
The third memory model scenario supported by video-buf is overlay mode.
This model is not implemented on vivi and unlikely to be implemented on
newer drivers, since now, most userspace apps do some post-processing
(like de-interlacing).
After this patch, some cleanups may be done at video-buf.c to avoid
allocating pages, when the driver doesn't need a PCI buffer. This is the
case of vivi and usb drivers.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Trent Piepho [Wed, 24 Jan 2007 01:38:13 +0000 (22:38 -0300)]
V4L/DVB (5146): Make VIDIOC_INT_[SG]_REGISTER ioctls no longer internal only
The direct register access ioctls were defined as kernel internal only,
but they are very useful for debugging hardware from userspace and are
used as such. Officially export them.
VIDIOC_INT_[SG]_REGISTER is renamed to VIDIOC_DBG_[SG]_REGISTER
Definition of ioctl and struct v4l2_register is moved from v4l2-common.h
to videodev2.h.
Types used in struct v4l2_register are changed to the userspace
exportable versions (u32 -> __u32, etc).
Use of VIDIOC_DBG_S_REGISTER requires CAP_SYS_ADMIN permission, so move
the check into the video_ioctl2() dispatcher so it doesn't need to be
duplicated in each driver's call-back function. CAP_SYS_ADMIN check is
added to pvrusb2 (which doesn't use video_ioctl2).
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Trent Piepho [Tue, 23 Jan 2007 02:31:53 +0000 (23:31 -0300)]
V4L/DVB (5144): Restore VIDIOC_INT_[SG]_REGISTER calls
Add support for these ioctls to the video_ioctl2 system and the cx88
driver.
Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Tue, 23 Jan 2007 18:34:10 +0000 (15:34 -0300)]
V4L/DVB (5142): M920x: move filter caps from device caps to adapter caps
Move filter caps from device caps to adapter caps for the megasky driver.
This fixes usb1.1 operation.
Signed-off-by: Aapo Tahkola <aet@rasterburn.org>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Tue, 23 Jan 2007 18:00:42 +0000 (15:00 -0300)]
V4L/DVB (5141): M920x: group tuner / demod callback functions together
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Sun, 21 Jan 2007 18:57:48 +0000 (15:57 -0300)]
V4L/DVB (5140): Whitespace / 80-column cleanups
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Aapo Tahkola [Sun, 21 Jan 2007 18:57:20 +0000 (15:57 -0300)]
V4L/DVB (5139): M920x: Fix tuner identification bug with qt1010 module
Fixes qt1010 identification bug with megasky caused by
the Quantek QT1010 tuner module patch.
Signed-off-by: Aapo Tahkola <aet@rasterburn.org>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Sun, 21 Jan 2007 18:56:46 +0000 (15:56 -0300)]
V4L/DVB (5138): Kconfig: qt1010 should be selected by m920x
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Antti Palosaari [Sun, 21 Jan 2007 18:56:10 +0000 (15:56 -0300)]
V4L/DVB (5137): Dvb: add new qt1010 tuner module
QT1010:
- old qt1010-code totally rewritten and put in own kernel module
- same enhancements as my earlier QT1010 125kHz patch
- tuner initialization
- register 1f calculation
- register 20 calculation
- register 25 calculation
m920x: (MSI Megasky)
- use new QT1010 module instead of old code
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Sat, 7 Oct 2006 18:03:04 +0000 (15:03 -0300)]
V4L/DVB (5136): M920x: correct oops when loading module
move .caps from the adapter properties to the device properties.
Thanks to Martin Schwier for confirming this fix.
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Jan Nijs [Sat, 7 Oct 2006 04:06:54 +0000 (01:06 -0300)]
V4L/DVB (5135): Qt1010: correct hardlockup when an app access the DVB dongle
This patch changes qt1010.h to use dvb_usb_device struct instead of a
dvb_usb_adapter for accessing the private area of the driver.
Without this patch my PC hard locks when an application tries to access
the DVB tuner.
Signed-off-by: Jan Nijs <jan.nijs@scarlet.be>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Tue, 3 Oct 2006 19:46:33 +0000 (16:46 -0300)]
V4L/DVB (5134): M920x: fix build in hg tree / other trivial fixes
- removed extra newline
- removed NULL entry
- fixed versions.txt
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Thu, 28 Sep 2006 17:47:21 +0000 (14:47 -0300)]
V4L/DVB (5133): M920x: move qt1010_tuner_attach function into qt1010.h
The megasky_tuner_attach function is not specific to this device.
This patch renames it to qt1010_tuner_attach and moves it into the qt1010
header file.
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Patrick Boettcher [Thu, 28 Sep 2006 16:48:03 +0000 (13:48 -0300)]
V4L/DVB (5132): M920x: more trivial cleanups
- Removed some needless brances
- Removed an unneeded check for adapter[0]
- Removed unneeded declaration of .generic_bulk_ctrl_endpoint = 0x01
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Thu, 28 Sep 2006 04:46:49 +0000 (01:46 -0300)]
V4L/DVB (5131): M920x: more cleanups
Some cleanups and suggestions from Patrick Boettcher.
Dropped the mutex in m9206_rc_query using #if 0, because
M9206_CORE, M9206_I2C, M9206_FILTER and M9206_FW can be accessed
concurrently.
Thanks to both Aapo Tahkola and Patrick Boettcher.
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Aapo Tahkola [Thu, 28 Sep 2006 03:47:51 +0000 (00:47 -0300)]
V4L/DVB (5130): M920x: misc updates and fixes
- hardware pid filtering no longer enabled unless in usb 1.x mode
- more responsive rc handling
- some minor bug fixes and code refolding
- m9206_write delay dropped (doesn't seem to be needed)
Signed-off-by: Aapo Tahkola <aet@rasterburn.org>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Sat, 23 Sep 2006 23:40:20 +0000 (20:40 -0300)]
V4L/DVB (5129): M920x: break out qt1010 tuner code into a separate file
qt1010 is a tuner used in some other devices, so this code should be put
into a separate file so that it could be reused by other drivers.
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Sat, 23 Sep 2006 23:13:12 +0000 (20:13 -0300)]
V4L/DVB (5128): M920x: trivial cleanups
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Sat, 23 Sep 2006 23:01:29 +0000 (20:01 -0300)]
V4L/DVB (5127): M920x: update megasky driver for recent changes in the dvb tree
update code to use dvb_attach()
update code to reflect recent changes to the dvb_usb framework
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Sat, 23 Sep 2006 23:01:29 +0000 (20:01 -0300)]
V4L/DVB (5126): M920x: cleanups after rename from megasky.[ch]
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Sat, 23 Sep 2006 23:00:42 +0000 (20:00 -0300)]
V4L/DVB (5125): Dvb-usb: rename megasky.[ch] to m920x.[ch]
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Aapo Tahkola [Sat, 23 Sep 2006 23:00:41 +0000 (20:00 -0300)]
V4L/DVB (5124): Dvb-usb: Initial support for MSI Mega Sky 580 based on Uli m9206
Currently, the driver works in bulk mode supporting both USB 2.0 and
1.0 with and without hardware pid filters.
The ULi m9205 also supports isochronous transfer mode, but I have
dropped support for it because it depends on firmware and does not work
on all USB host chips. Further, I have no firmware with remote
controller support for this mode.
Signed-off-by: Aapo Tahkola <aet@rasterburn.org>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Tino Keitel [Mon, 22 Jan 2007 21:33:07 +0000 (18:33 -0300)]
V4L/DVB (5121): Proper vendor/device ID for the CinergyT2 input device
I noticed that udev does not create a symlink for the CinergyT2 remote input
device in /dev/input/by-id, which is required if I want to have a
unique device name for lircd.
The attached patch tries to achive this. However, udev still omits the
input device for /dev/input/by-id symlinks. I think something is still
not reported correctly.
Signed-off-by: Tino Keitel <tino.keitel@tikei.de>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Mon, 22 Jan 2007 21:27:47 +0000 (18:27 -0300)]
V4L/DVB (5119): Various cx2341x documentation updates/fixes.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Mon, 22 Jan 2007 01:02:58 +0000 (22:02 -0300)]
V4L/DVB (5117): Fix: VIDIOC_G_TUNER were returning an endless number of tuners
pvrusb2 have only one tuner inside. However, as it were not handling
index, a call to v4l-info were returning as if it were an infinite
number of tuners:
$ v4l-info|grep VIDIOC_G_TUNER |head -5
VIDIOC_G_TUNER(0)
VIDIOC_G_TUNER(1)
VIDIOC_G_TUNER(2)
VIDIOC_G_TUNER(3)
VIDIOC_G_TUNER(4)
Acked-by: Mike Isely <isely@isely.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Mon, 22 Jan 2007 01:02:35 +0000 (22:02 -0300)]
V4L/DVB (5116): Remove some warnings when compiling on x86_64
pvrusb2-encoder.c: In function 'pvr2_encoder_cmd':
pvrusb2-encoder.c:195: warning: format '%u' expects
type 'unsigned int', but argument 3 has type 'long unsigned int'
pvrusb2-encoder.c:205: warning: format '%u' expects
type 'unsigned int', but argument 3 has type 'long unsigned int'
pvrusb2-encoder.c: In function 'pvr2_encoder_vcmd':
pvrusb2-encoder.c:303: warning: format '%u' expects
type 'unsigned int', but argument 3 has type 'long unsigned int'
Acked-by: Mike Isely <isely@isely.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Heiko Baums [Sun, 21 Jan 2007 08:58:19 +0000 (05:58 -0300)]
V4L/DVB (5114): Cx88: Add support for svideo/composite input of the Terratec Cinergy 1400 DVB-T
Adds support for the combined S-Video/Composite input of the
Terratec Cinergy 1400 DVB-T.
Signed-off-by: Heiko Baums <heiko@baums-on-web.de>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Marco Schluessler [Sun, 21 Jan 2007 22:43:38 +0000 (19:43 -0300)]
V4L/DVB (5113): Adds video output routing
Nexus CA needs to use a different routing on saa7115 module.
Signed-off-by: Marco Schluessler <marco@lordzodiac.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Tue, 16 Jan 2007 21:36:40 +0000 (18:36 -0300)]
V4L/DVB (5111): Saa7134: add support for Terratec Cinergy HT PCI
Add support for Terratec Cinergy HT PCI
Signed-off-by: Giorgio Moscardi <software@sukkology.net>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sat, 20 Jan 2007 16:59:41 +0000 (13:59 -0300)]
V4L/DVB (5110): Keep the previous tvnorm default for cx88 and cx88-blackbird
The video_ioctl2 conversion replaced the default from NTSC to PAL_BG.
This broke cx88-blackbird. Probably, there are some badness at this
driver, not doing all required stuff to change video standard.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sat, 20 Jan 2007 16:59:38 +0000 (13:59 -0300)]
V4L/DVB (5109): Convert cx88-blackbird to use video_ioctl2
This patch finishes cx88-blackbird conversion to use video_ioctl2. Video
standards are generated automatically inside videodev.c. the big ioctl
parser is removed, using, instead, video_ioctl2.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sat, 20 Jan 2007 16:59:35 +0000 (13:59 -0300)]
V4L/DVB (5108): Remove_cx88_ioctl
cx88_ioctl were merged at the master ioctl handler on cx88-blackbird
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sat, 20 Jan 2007 16:59:32 +0000 (13:59 -0300)]
V4L/DVB (5107): Use cx88_set_freq() on cx88-blackbird.c
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sat, 20 Jan 2007 16:59:29 +0000 (13:59 -0300)]
V4L/DVB (5106): Do some cleanups at cx88-blackbird
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sat, 20 Jan 2007 16:59:22 +0000 (13:59 -0300)]
V4L/DVB (5105): Reorder some ioctl handlers
Reorder some ioctl handlers to make easy to convert to video_ioctl2
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sat, 20 Jan 2007 16:58:39 +0000 (13:58 -0300)]
V4L/DVB (5104): Moved several stuff that were at cx88-video to cx88-blackbird.c
cx88-blackbird were using some ioctl handling that were previously on
cx88-video.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sat, 20 Jan 2007 16:58:36 +0000 (13:58 -0300)]
V4L/DVB (5103): Fix vidioc_g_tuner handling
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sat, 20 Jan 2007 16:58:33 +0000 (13:58 -0300)]
V4L/DVB (5102): make videodev to auto-generate standards
v4l2_tvnorm were meant to describe video standards and its names to V4L2 API.
However, this were doing by some static structures at the driver.
This patch changes the internals in a way that, at the driver, only a
v4l2_tvnorm (a 64 bit integer) should be filled, with all supported
tvnorms. videodev will dynamically generate the proper API array
based on supported standards.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sat, 20 Jan 2007 16:58:29 +0000 (13:58 -0300)]
V4L/DVB (5101): Renamed video_mux to cx88_video_mux
video_mux is renamed to cx88_video_mux to be exported to cx88-blackbird
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sat, 20 Jan 2007 16:58:26 +0000 (13:58 -0300)]
V4L/DVB (5100): Make cx88-blackbird to work again
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sat, 20 Jan 2007 16:58:23 +0000 (13:58 -0300)]
V4L/DVB (5099): Uncommented NTSC/443 video standard
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sat, 20 Jan 2007 16:58:20 +0000 (13:58 -0300)]
V4L/DVB (5098): Added support for V4L2_STD_NTSC_443
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sat, 20 Jan 2007 16:58:17 +0000 (13:58 -0300)]
V4L/DVB (5097): Convert cx8800 driver to video_ioctl2 handler
video_ioctl2 handler provides V4L2 API parsing.
Using it makes the driver simpler, and isolates API parsing.
This allows future reusage of driver controls using other ways, like sysfs
and/or procfs and increases isolation of driver-specific handling from the
generic common ioctl processing.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Pantelis Koukousoulas [Sat, 20 Jan 2007 04:59:54 +0000 (01:59 -0300)]
V4L/DVB (5095): Pvrusb2: Allow VIDIOC_S_FMT with -1 for resolution values
With the previous patch, mplayer started but was polling the video
device forever without any video actually coming out. Further analysis
showed that it does a VIDIOC_S_FMT with width and height set to -1 (!!!).
The code handling this only cares that both are lower than the minimum
range allowed so it ends up setting the size to 19x17 (!!) This pretty
much breaks the encoder here. Even if this breakage is yet another (TM)
result of my setup, setting the size to 19x17 by default would surprise
most users IMHO.
So, special case for -1 and interpret this to be a request for the
default size, please. Users can then set their favorite size both
through mplayer and through sysfs.
With this patch, mplayer finally works in pvr:// mode (not that we
really gain anything over operating it through sysfs with lirc,
sometime I might actually get off my lazy a** and contribute this
setup too)
Signed-off-by: Pantelis Koukousoulas <pakt223@freemail.gr>
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Pantelis Koukousoulas [Sat, 20 Jan 2007 04:57:36 +0000 (01:57 -0300)]
V4L/DVB (5094): Pvrusb2: Introduce fake audio input selection
This should allow mplayer pvr:// to start. The trick is that no matter
what actual input we use under this "fake" one, it will be able to do
stereo :-)
Signed-off-by: Pantelis Koukousoulas <pakt223@freemail.gr>
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Sat, 20 Jan 2007 04:56:04 +0000 (01:56 -0300)]
V4L/DVB (5093): Pvrusb2: Emit VIDIOC_S_TUNER correctly
Audio mode changes are not private to the audio chip - other I2C
modules need to see this as well. And since the command in question
is VIDIOC_S_TUNER which is a standard v4l2 command, we really should
be broadcasting it out. This change sets up a broadcast pathway for
VIDIOC_S_TUNER and also eliminates the now redundant code from the
audio chip handler.
This fix enables stereo reception for the FM radio
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Sat, 20 Jan 2007 03:39:17 +0000 (00:39 -0300)]
V4L/DVB (5092): Pvrusb2: Use ARRAY_SIZE wherever possible
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Sat, 20 Jan 2007 03:37:11 +0000 (00:37 -0300)]
V4L/DVB (5091): Pvrusb2: Use kzalloc in place of kmalloc/memset pairs
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Ahmed S. Darwish [Sat, 20 Jan 2007 03:35:03 +0000 (00:35 -0300)]
V4L/DVB (5090): Pvrusb2: A patch to use ARRAY_SIZE macro when appropriate
Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com>
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Sat, 20 Jan 2007 03:30:23 +0000 (00:30 -0300)]
V4L/DVB (5089): Pvrusb2: V4L EXT_CTRLS fixup
Attempts to enumerate or operate on a group of EXT_CTRLS where the
group size is zero is OK; don't fail on such operations. At least one
application uses this to probe for the existence of this API so let it
succeed.
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>