openwrt/staging/blogic.git
11 years ago[media] stk1160: remove V4L2_CHIP_MATCH_AC97 placeholder
Hans Verkuil [Mon, 18 Mar 2013 15:20:36 +0000 (12:20 -0300)]
[media] stk1160: remove V4L2_CHIP_MATCH_AC97 placeholder

It was just a placeholder and we want to get rid of the AC97 matching
define.
Also replace MATCH_HOST with MATCH_BRIDGE since we are here anyway.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l2: add new VIDIOC_DBG_G_CHIP_NAME ioctl
Hans Verkuil [Mon, 18 Mar 2013 15:16:34 +0000 (12:16 -0300)]
[media] v4l2: add new VIDIOC_DBG_G_CHIP_NAME ioctl

Simplify the debugging ioctls by creating the VIDIOC_DBG_G_CHIP_NAME ioctl.
This will eventually replace VIDIOC_DBG_G_CHIP_IDENT. Chip matching is done
by the name or index of subdevices or an index to a bridge chip. Most of this
can all be done automatically, so most drivers just need to provide get/set
register ops.
In particular, it is now possible to get/set subdev registers without
requiring assistance of the bridge driver.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] DocBook media: fix syntax problems in dvbproperty.xml
Hans Verkuil [Mon, 18 Mar 2013 16:20:00 +0000 (13:20 -0300)]
[media] DocBook media: fix syntax problems in dvbproperty.xml

Caught by xmllint.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l2-common: remove obsolete check for ' at the end of a driver name
Hans Verkuil [Wed, 6 Mar 2013 07:34:26 +0000 (04:34 -0300)]
[media] v4l2-common: remove obsolete check for ' at the end of a driver name

During the transition to sub-devices several years ago non-subdev drivers
had a ' at the end of their driver name to tell them apart from already
converted drivers. This check was a left-over from that time and can be
removed.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] videobuf2-core: print current state of buffer in vb2_buffer_done
Tushar Behera [Mon, 12 Nov 2012 07:01:29 +0000 (04:01 -0300)]
[media] videobuf2-core: print current state of buffer in vb2_buffer_done

In vb2_buffer_done, it would be better the print the value of 'state'
(current state of buffer) than to print 'vb->state' which is always
VB2_BUF_STATE_ACTIVE.

Signed-off-by: Tushar Behera <tushar.behera@linaro.org>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: prefix sources with 'solo6x10-'
Hans Verkuil [Mon, 25 Mar 2013 08:47:48 +0000 (05:47 -0300)]
[media] solo6x10: prefix sources with 'solo6x10-'

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: rename headers
Hans Verkuil [Mon, 25 Mar 2013 08:42:46 +0000 (05:42 -0300)]
[media] solo6x10: rename headers

Prefix the headers with 'solo6x10-'.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: clean up motion detection handling
Hans Verkuil [Mon, 18 Mar 2013 11:43:14 +0000 (08:43 -0300)]
[media] solo6x10: clean up motion detection handling

An earlier patch temporarily disabled regional motion detection. This patch
adds it back: the 'Motion Detection Enable' control is now a 'Motion Detection Mode'.
And to set/get the regional thresholds two new ioctls were added to get/set those
thresholds.
The BUF_FLAG constants were also updated to prevent clashing with existing buffer
flags.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: disable the 'priv' abuse
Hans Verkuil [Fri, 15 Mar 2013 19:35:28 +0000 (16:35 -0300)]
[media] solo6x10: disable the 'priv' abuse

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: fix sequence handling
Hans Verkuil [Fri, 15 Mar 2013 16:16:49 +0000 (13:16 -0300)]
[media] solo6x10: fix sequence handling

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: use V4L2_PIX_FMT_MPEG4, not _FMT_MPEG
Hans Verkuil [Fri, 15 Mar 2013 15:53:59 +0000 (12:53 -0300)]
[media] solo6x10: use V4L2_PIX_FMT_MPEG4, not _FMT_MPEG

FMT_MPEG is for multiplexed streams, not elementary streams. The same is
true for the V4L2_CID_MPEG_VIDEO_ENCODING control.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: small big-endian fix
Hans Verkuil [Fri, 15 Mar 2013 14:17:12 +0000 (11:17 -0300)]
[media] solo6x10: small big-endian fix

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: also stop DMA if the SOLO_PCI_ERR_P2M_DESC is raised
Hans Verkuil [Fri, 15 Mar 2013 14:16:56 +0000 (11:16 -0300)]
[media] solo6x10: also stop DMA if the SOLO_PCI_ERR_P2M_DESC is raised

Otherwise the computer will hang.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: drop video_type and add proper s_std support
Hans Verkuil [Fri, 15 Mar 2013 15:53:17 +0000 (12:53 -0300)]
[media] solo6x10: drop video_type and add proper s_std support

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: add call to pci_dma_mapping_error
Hans Verkuil [Mon, 18 Mar 2013 11:21:33 +0000 (08:21 -0300)]
[media] solo6x10: add call to pci_dma_mapping_error

Check the result of the dma mapping.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: fix 'BUG: key ffff88081a2a9b58 not in .data!'
Hans Verkuil [Fri, 15 Mar 2013 15:09:35 +0000 (12:09 -0300)]
[media] solo6x10: fix 'BUG: key ffff88081a2a9b58 not in .data!'

Caused by a missing sysfs_attr_init().

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: convert the display node to vb2
Hans Verkuil [Fri, 15 Mar 2013 15:11:17 +0000 (12:11 -0300)]
[media] solo6x10: convert the display node to vb2

As a consequence the ioctl op has been replaced by unlocked_ioctl.
Since we are now using the core lock the locking scheme has been
simplified as well.
The main reason for converting this driver to vb2 was that the locking
scheme in v4l2.c was hopeless. It was easier to just convert the driver
then to try and salvage a threading and videobuf nightmare.
The videobuf2 framework is far, far superior compared to the old videobuf.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: convert encoder nodes to vb2
Hans Verkuil [Fri, 15 Mar 2013 15:04:14 +0000 (12:04 -0300)]
[media] solo6x10: convert encoder nodes to vb2

As a consequence the ioctl op has been replaced by unlocked_ioctl.
Since we are now using the core lock the locking scheme has been
simplified as well.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: move global fields in solo_enc_fh to solo_enc_dev
Hans Verkuil [Mon, 18 Mar 2013 11:41:13 +0000 (08:41 -0300)]
[media] solo6x10: move global fields in solo_enc_fh to solo_enc_dev

All fields in solo_enc_fh do not belong there since they refer to global
properties. After moving all these fields to solo_enc_dev the solo_dev_fh
struct can be removed completely.
Note that this also kills the 'listener' feature of this driver. This
feature (where multiple filehandles can read the video) is illegal in the
V4L2 API. Do this in userspace: it's much more efficient to copy memory
than it is to DMA to every listener.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: move global fields in solo_dev_fh to solo_dev
Hans Verkuil [Fri, 15 Mar 2013 14:56:46 +0000 (11:56 -0300)]
[media] solo6x10: move global fields in solo_dev_fh to solo_dev

All fields in solo_dev_fh do not belong there since they refer to global
properties. After moving all these fields to solo_dev the solo_dev_fh
struct can be removed completely.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: add support for prio and control event handling
Hans Verkuil [Tue, 12 Mar 2013 21:47:03 +0000 (18:47 -0300)]
[media] solo6x10: add support for prio and control event handling

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: fix various format-related compliancy issues
Hans Verkuil [Tue, 12 Mar 2013 21:43:21 +0000 (18:43 -0300)]
[media] solo6x10: fix various format-related compliancy issues

- try_fmt should never return -EBUSY.
- invalid pix->field values were not mapped to a valid value.
- the priv field of struct v4l2_pix_format wasn't zeroed.
- the try_fmt error code was not checked in set_fmt.
- enum_framesizes/intervals is valid for both MJPEG and MPEG pixel formats.
- enum_frameintervals didn't check width and height and reported the
  wrong range.
- s_parm didn't set readbuffers.
- don't fail on invalid colorspace, just replace with the valid colorspace.
- bytesperline should be 0 for compressed formats.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: add control framework
Hans Verkuil [Mon, 25 Mar 2013 08:38:14 +0000 (05:38 -0300)]
[media] solo6x10: add control framework

Note that the MOTION_THRESHOLD functionality has been temporarily reduced:
only the global threshold can be set, not the per-block. This will be
addressed in a later patch: controls are not the proper way to do this.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: add v4l2_device
Hans Verkuil [Mon, 25 Mar 2013 08:36:44 +0000 (05:36 -0300)]
[media] solo6x10: add v4l2_device

Add support for struct v4l2_device.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: fix querycap and update driver version
Hans Verkuil [Tue, 12 Mar 2013 21:03:20 +0000 (18:03 -0300)]
[media] solo6x10: fix querycap and update driver version

Setup correct bus_info, let the v4l2 core set the version and add device_caps
support.
Also update the module version to 3.0.0 since this is a major upgrade.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] solo6x10: sync to latest code from Bluecherry's git repo
Hans Verkuil [Mon, 25 Mar 2013 08:35:17 +0000 (05:35 -0300)]
[media] solo6x10: sync to latest code from Bluecherry's git repo

Synced to commit e9815ac5503ae60cfbf6ff8037035de8f62e2846 from
branch next in git repository https://github.com/bluecherrydvr/solo6x10.git
Only removed some code under #if LINUX_VERSION_CODE < some-kernel-version,
renamed the driver back to solo6x10 from solo6x10-edge, removed the
unnecessary compat.h header and kept the slab.h includes.
Otherwise the code is identical.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Ismael Luceno <ismael.luceno@corp.bluecherry.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] staging: lirc_sir: remove dead code
Alexander Shiyan [Mon, 25 Mar 2013 08:27:12 +0000 (05:27 -0300)]
[media] staging: lirc_sir: remove dead code

lirc_sir uses the CONFIG_SA1100_BITSY Kconfig macro. But its Kconfig
symbol was removed in v2.4.13. So remove dead code associated with it.

Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tw2804: Revert ADC Control commit 523a4f7fbcf856fb1c2a4850f44edea6738ee37b
Volokh Konstantin [Sat, 23 Mar 2013 22:28:28 +0000 (19:28 -0300)]
[media] tw2804: Revert ADC Control commit 523a4f7fbcf856fb1c2a4850f44edea6738ee37b

Case: In AdLink MPG24 there is bt878 exists (it captures one frame of all video
inputs), Video Signal for it one transmits through tw2804 chip, so we can't
control ADC (shut on/off) on tw2804, as some another can use bttv capture way.

Signed-off-by: Volokh Konstantin <volokh84@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: using strlcpy instead of strncpy
Chen Gang [Mon, 25 Mar 2013 09:56:35 +0000 (06:56 -0300)]
[media] go7007: using strlcpy instead of strncpy

For NUL terminated string, need always set '\0' in the end.

Signed-off-by: Chen Gang <gang.chen@asianux.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: Remove unneeded version.h header include
Sachin Kamat [Mon, 25 Mar 2013 05:22:19 +0000 (02:22 -0300)]
[media] go7007: Remove unneeded version.h header include

version.h header inclusion is not necessary as detected by
versioncheck.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tw9603/6.c: use two separate const tables for the 50/60hz setup
Hans Verkuil [Mon, 25 Mar 2013 09:23:23 +0000 (06:23 -0300)]
[media] tw9603/6.c: use two separate const tables for the 50/60hz setup

Using two separate tables to setup the registers for 50 or 60 hz is
better than the non-const table that is filled in at runtime.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: don't continue if firmware can't be loaded
Hans Verkuil [Sun, 17 Mar 2013 12:23:25 +0000 (09:23 -0300)]
[media] go7007: don't continue if firmware can't be loaded

The go7007 driver would continue during probe if no firmware could be
loaded. Without firmware the probe() should return an error, so do that.
Also move the registration of devices to the end of the probe() sequence:
once devices appear the full driver functionality should be available.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: update the README
Hans Verkuil [Mon, 25 Mar 2013 09:52:19 +0000 (06:52 -0300)]
[media] go7007: update the README

Include the patch required to add support for the go7007 to saa7134.
To be applied once the driver is moved out of staging.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] saa7134-go7007: convert to a subdev and the control framework
Hans Verkuil [Mon, 25 Mar 2013 09:18:04 +0000 (06:18 -0300)]
[media] saa7134-go7007: convert to a subdev and the control framework

The only thing missing after this to make the Sensoray model 614 board work is
to hook it up to the saa7134 driver, but that will have to wait until this
driver goes out of staging.

Signed-off-by: Pete Eberlein <pete@sensoray.com>
[hans.verkuil@cisco.com: updated to make it merge correctly]
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tw9906: Remove unneeded version.h header include
Sachin Kamat [Mon, 25 Mar 2013 04:22:18 +0000 (01:22 -0300)]
[media] tw9906: Remove unneeded version.h header include

version.h header inclusion is not necessary as detected by
versioncheck.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] em28xx-i2c: fix coding style of multi line comments
Frank Schaefer [Sun, 24 Mar 2013 20:09:59 +0000 (17:09 -0300)]
[media] em28xx-i2c: fix coding style of multi line comments

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] em28xx-i2c: do not break strings across lines
Frank Schaefer [Sun, 24 Mar 2013 17:58:03 +0000 (14:58 -0300)]
[media] em28xx-i2c: do not break strings across lines

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] vivi: add v4l2_ctrl_modify_range test case
Hans Verkuil [Tue, 12 Mar 2013 06:56:55 +0000 (03:56 -0300)]
[media] vivi: add v4l2_ctrl_modify_range test case

Update the brighness range depending on the selected input. Useful for
testing control range events.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] sony-btf-mpx: v4l2_tuner struct is now constant
Mauro Carvalho Chehab [Sun, 24 Mar 2013 16:51:21 +0000 (13:51 -0300)]
[media] sony-btf-mpx: v4l2_tuner struct is now constant

A patchset applied earlier changed v4l2_tuner struct parameter at
vidioc_s_tuner to const. Do this change at sony_btf_mpx_s_tuner(),
in order to remove this warning:

drivers/media/i2c/sony-btf-mpx.c:335:2: warning: initialization from incompatible pointer type [enabled by default]
drivers/media/i2c/sony-btf-mpx.c:335:2: warning: (near initialization for 'sony_btf_mpx_tuner_ops.s_tuner') [enabled by default]

Cc: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] DocBook/media/v4l: Update version number and document 3.10 changes
Hans Verkuil [Sun, 24 Mar 2013 09:08:00 +0000 (06:08 -0300)]
[media] DocBook/media/v4l: Update version number and document 3.10 changes

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] videodev2.h: remove obsolete DV_PRESET API
Hans Verkuil [Fri, 15 Feb 2013 18:22:56 +0000 (15:22 -0300)]
[media] videodev2.h: remove obsolete DV_PRESET API

This API is now obsolete and can be removed.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] DocBook/media/v4l: remove the documentation of the obsolete dv_preset API
Hans Verkuil [Sun, 24 Mar 2013 09:09:29 +0000 (06:09 -0300)]
[media] DocBook/media/v4l: remove the documentation of the obsolete dv_preset API

This API is no longer used by any driver and so can be removed from the
documentation.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l2 core: remove the obsolete dv_preset support
Hans Verkuil [Fri, 15 Feb 2013 18:21:06 +0000 (15:21 -0300)]
[media] v4l2 core: remove the obsolete dv_preset support

These ioctls are no longer used by any drivers, so remove them.

[mchehab@redhat.com: Fix merge conflict]
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l2-subdev: remove obsolete dv_preset ops
Hans Verkuil [Fri, 15 Feb 2013 18:19:33 +0000 (15:19 -0300)]
[media] v4l2-subdev: remove obsolete dv_preset ops

These ops are no longer used, so it's time to remove them.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l2-common: remove obsolete v4l_fill_dv_preset_info
Hans Verkuil [Fri, 15 Feb 2013 18:18:04 +0000 (15:18 -0300)]
[media] v4l2-common: remove obsolete v4l_fill_dv_preset_info

It's no longer used, so it can now be removed.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: add support for ADS Tech DVD Xpress DX2
Hans Verkuil [Sun, 17 Mar 2013 13:15:03 +0000 (10:15 -0300)]
[media] go7007: add support for ADS Tech DVD Xpress DX2

Taken from the 0.9.8-5 version of the out-of-tree wis-go7007 driver.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tw9906: add Techwell tw9906 video decoder
Hans Verkuil [Sun, 17 Mar 2013 12:26:40 +0000 (09:26 -0300)]
[media] tw9906: add Techwell tw9906 video decoder

Taken from the 0.9.8-5 version of the out-of-tree wis-go7007 driver.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: drop firmware name in board config, make configs const
Hans Verkuil [Sun, 17 Mar 2013 13:56:20 +0000 (10:56 -0300)]
[media] go7007: drop firmware name in board config, make configs const

The firmware is always the same, so drop it from the board configs. Also make
the board configs const.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: correct a header check: MPEG4 has a different GOP code
Hans Verkuil [Sun, 17 Mar 2013 13:11:32 +0000 (10:11 -0300)]
[media] go7007: correct a header check: MPEG4 has a different GOP code

Actually it's called "Group of VOP" start code in MPEG4 terminology.
Taken from the 0.9.8-5 version of the out-of-tree wis-go7007 driver.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: add back 'repeat sequence header' control
Hans Verkuil [Sun, 17 Mar 2013 13:47:02 +0000 (10:47 -0300)]
[media] go7007: add back 'repeat sequence header' control

But now as a proper standard MPEG control.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: Restore b_frame control
Volokh Konstantin [Sun, 17 Mar 2013 10:16:37 +0000 (07:16 -0300)]
[media] go7007: Restore b_frame control

Signed-off-by: Volokh Konstantin <volokh84@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: a small improvement to querystd handling
Hans Verkuil [Mon, 11 Mar 2013 21:58:21 +0000 (18:58 -0300)]
[media] go7007: a small improvement to querystd handling

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] MAINTAINERS: add the go7007 driver
Hans Verkuil [Sat, 9 Mar 2013 15:59:44 +0000 (12:59 -0300)]
[media] MAINTAINERS: add the go7007 driver

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007-loader: add support for the other devices and move fw files
Hans Verkuil [Mon, 11 Mar 2013 09:45:14 +0000 (06:45 -0300)]
[media] go7007-loader: add support for the other devices and move fw files

Add support for the other devices that need to load the boot firmware.
All firmware files are now placed in a single go7007 directory.
Also remove the device_extension_s stuff: this is clearly a left-over from
the olden days.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007-loader: renamed from s2250-loader
Hans Verkuil [Sat, 9 Mar 2013 16:28:39 +0000 (13:28 -0300)]
[media] go7007-loader: renamed from s2250-loader

All s2250 names are renamed to go7007. This will be the generic go7007
firmware loader for any go7007 device, not just for the s2250/1.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] s2250: add comment describing the hardware
Hans Verkuil [Thu, 7 Mar 2013 07:58:35 +0000 (04:58 -0300)]
[media] s2250: add comment describing the hardware

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: remove cropping functions
Hans Verkuil [Sat, 9 Mar 2013 15:10:35 +0000 (12:10 -0300)]
[media] go7007: remove cropping functions

Remove these dummy cropping functions: cropping was never implemented.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: embed struct video_device
Hans Verkuil [Mon, 11 Mar 2013 09:34:22 +0000 (06:34 -0300)]
[media] go7007: embed struct video_device

Do not allocate it, but just embed in the go7007 struct.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: convert to core locking and vb2
Hans Verkuil [Mon, 11 Mar 2013 09:52:27 +0000 (06:52 -0300)]
[media] go7007: convert to core locking and vb2

Convert this driver to videobuf2 and core locking.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: drop struct go7007_file
Hans Verkuil [Mon, 11 Mar 2013 09:18:20 +0000 (06:18 -0300)]
[media] go7007: drop struct go7007_file

Remove struct go7007_file: all fields contained in that struct are moved to
the go7007 struct since they are really global values. The lock has just
been deleted (what's the point of a per-fh lock??).

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: set up the saa7115 audio clock correctly
Hans Verkuil [Mon, 11 Mar 2013 09:12:10 +0000 (06:12 -0300)]
[media] go7007: set up the saa7115 audio clock correctly

The s_crystal_freq operation has to be called for the saa7115 to
set up the audio clock correctly.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: simplify the PX-TV402U board ID handling
Hans Verkuil [Mon, 11 Mar 2013 09:11:03 +0000 (06:11 -0300)]
[media] go7007: simplify the PX-TV402U board ID handling

There really is no need to split out the board IDs for each tuner.
That's what the tuner_type is for, after all.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: standardize MPEG handling support
Hans Verkuil [Mon, 11 Mar 2013 08:58:55 +0000 (05:58 -0300)]
[media] go7007: standardize MPEG handling support

The go7007 produces elementary streams, so we shouldn't use the STREAM_TYPE
control, since that is for multiplexed streams.
Instead use V4L2_PIX_FMT_MPEG1/2/4.
Initially set up all the values for MPEG-2 dvd-mode, and select the dvd_mode
field if those values match that setup precisely.
Clean up lots of obsolete code relating to the custom ioctls for the MPEG
support.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: tuner/std related fixes
Hans Verkuil [Mon, 11 Mar 2013 08:50:21 +0000 (05:50 -0300)]
[media] go7007: tuner/std related fixes

- The Adlink is initially detected as a sensor board, so the driver config
  is set up as if it was a sensor. Later the driver discovers that it really
  is a video capture card and that means that the driver configuration has
  to be updated for a PAL/NTSC capture card.
- Setup the correct initial std based on the TV tuner type.
- Remember the exact std the user selected, don't map it to STD_PAL or NTSC.
- Use v4l2_disable_ioctl to disable ioctls based on the board config and
  drop a lot of checking code in each of those ioctls since that is no longer
  needed.
- enum_input should use tvnorms to fill its std field.
- configure the input, std and initial tuner frequency at driver initialization.
- fix std handling in the s2250 driver.
- the code handling scaling for devices without a scaler was broken. This is
  now fixed.
- correctly set readbuffers and capability in g/s_parm.
- remove the bogus test for capturemode in s_parm.
- correctly implement enum_framesizes/intervals.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: add log_status support
Hans Verkuil [Sat, 9 Mar 2013 14:25:09 +0000 (11:25 -0300)]
[media] go7007: add log_status support

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: add prio and control event support
Hans Verkuil [Sat, 9 Mar 2013 14:08:41 +0000 (11:08 -0300)]
[media] go7007: add prio and control event support

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] s2250: convert to the control framework
Hans Verkuil [Sun, 3 Mar 2013 13:50:34 +0000 (10:50 -0300)]
[media] s2250: convert to the control framework

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: convert to the control framework and remove obsolete JPEGCOMP support
Hans Verkuil [Mon, 11 Mar 2013 08:19:59 +0000 (05:19 -0300)]
[media] go7007: convert to the control framework and remove obsolete JPEGCOMP support

Just add a read-only V4L2_CID_JPEG_ACTIVE_MARKER control to replace
the JPEGCOMP support.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: fix unregister/disconnect handling
Hans Verkuil [Mon, 11 Mar 2013 07:48:30 +0000 (04:48 -0300)]
[media] go7007: fix unregister/disconnect handling

- use the v4l2_device's release() callback
- remove the unnecessary ref_count
- don't free usb data structures on disconnect, only do that in the final
  release callback.
This is the correct way in order to safely handle disconnect and removal
of modules.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: remember boot firmware
Hans Verkuil [Sat, 9 Mar 2013 13:37:52 +0000 (10:37 -0300)]
[media] go7007: remember boot firmware

Don't load it everytime you stop encoding. Instead remember it.
Another reason for not loading it every time is that this could
be called from within the release() file operation, which turns
out to be deadly.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: fix DMA related errors
Hans Verkuil [Sat, 9 Mar 2013 12:59:16 +0000 (09:59 -0300)]
[media] go7007: fix DMA related errors

- Don't pass data allocated on the stack to usb_control_msg.
- Use dma_mapping_error after calling dma_map_page().

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: remove current_norm
Hans Verkuil [Sun, 17 Feb 2013 12:06:27 +0000 (09:06 -0300)]
[media] go7007: remove current_norm

It's deprecated and replaced by g_std. Since this driver already implements
g_std the use of current_norm can just be removed.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: go7007: add device_caps and bus_info support to querycap
Hans Verkuil [Sat, 9 Mar 2013 12:38:03 +0000 (09:38 -0300)]
[media] go7007: go7007: add device_caps and bus_info support to querycap

And don't set the version field, the core does that for you.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] s2250-loader: use usbv2_cypress_load_firmware
Hans Verkuil [Sat, 9 Mar 2013 12:35:07 +0000 (09:35 -0300)]
[media] s2250-loader: use usbv2_cypress_load_firmware

The v2 of this function doesn't do DMA to objects on the stack like
its predecessor does.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: add audio input ioctls
Hans Verkuil [Sat, 9 Mar 2013 16:19:08 +0000 (13:19 -0300)]
[media] go7007: add audio input ioctls

Since we now know what audio inputs there are, we can also get/set and
enumerate them.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: remove all wis* drivers
Hans Verkuil [Sat, 9 Mar 2013 12:27:54 +0000 (09:27 -0300)]
[media] go7007: remove all wis* drivers

These are now no longer used and so they can be removed.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: switch to standard tuner/i2c subdevs
Hans Verkuil [Sat, 9 Mar 2013 12:25:47 +0000 (09:25 -0300)]
[media] go7007: switch to standard tuner/i2c subdevs

Instead of using the wis-* drivers we now use the standard 'proper' subdev
drivers.
The board configuration tables now also list the possible audio inputs,
this will be used later to implement audio inputs.
Special mention deserves a little change in set_capture_size() where the
height passed to s_mbus_fmt is doubled: that is because the saa7115 driver
expects to see the frame height, not the field height as the wis_saa7115
driver did.
Another change is that the tuner input is moved from last to the first
input, which is consistent with the common practice in other video drivers.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: i2c initialization changes for tw2804
Volokh Konstantin [Sat, 9 Mar 2013 11:48:25 +0000 (08:48 -0300)]
[media] go7007: i2c initialization changes for tw2804

Do i2c initialization via struct item as tw2804 has a 0x00 i2c address,
so we need to use the I2C_CLIENT_TEN flag for validity.

Signed-off-by: Volokh Konstantin <volokh84@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tw2804: modify ADC power control
Volokh Konstantin [Wed, 22 Aug 2012 10:45:15 +0000 (07:45 -0300)]
[media] tw2804: modify ADC power control

Switch off all ADC (max 4) with first init, we control it
when starting/stopping streaming.

Signed-off-by: Volokh Konstantin <volokh84@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tw2804: add support for the Techwell tw2804
Hans Verkuil [Sat, 9 Mar 2013 11:06:07 +0000 (08:06 -0300)]
[media] tw2804: add support for the Techwell tw2804

This is based on the wis-tw2804.c driver that's part of the go7007 driver.
It has been converted to a v4l subdev driver by Volokh Konstantin, and I
made additional cleanups.
Based on work by: Volokh Konstantin <volokh84@gmail.com>

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tw9903: add new tw9903 video decoder
Hans Verkuil [Mon, 18 Mar 2013 07:10:56 +0000 (04:10 -0300)]
[media] tw9903: add new tw9903 video decoder

This based on the wis-tw9903.c driver that's part of the go7007 driver.
It has been converted to a v4l subdev driver by Pete Eberlein, and I made
additional cleanups.
Based on work by: Pete Eberlein <pete@sensoray.com>

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] uda1342: add new uda1342 audio codec driver
Hans Verkuil [Sat, 9 Mar 2013 10:20:12 +0000 (07:20 -0300)]
[media] uda1342: add new uda1342 audio codec driver

This based on the wis-uda1342.c driver that's part of the go7007 driver.
It has been converted to a v4l subdev driver by Pete Eberlein, and I made
additional cleanups.
Based on work by: Pete Eberlein <pete@sensoray.com>

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] ov7640: add new ov7640 driver
Hans Verkuil [Sat, 9 Mar 2013 10:09:18 +0000 (07:09 -0300)]
[media] ov7640: add new ov7640 driver

This based on the wis-ov7640.c driver that's part of the go7007 driver.
It has been converted to a v4l subdev driver by Pete Eberlein, and I made
additional cleanups.
Based on work by: Pete Eberlein <pete@sensoray.com>

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] sony-btf-mpx: the MPX driver for the sony BTF PAL/SECAM tuner
Hans Verkuil [Fri, 22 Mar 2013 14:13:58 +0000 (11:13 -0300)]
[media] sony-btf-mpx: the MPX driver for the sony BTF PAL/SECAM tuner

The Sony BTF PG472Z has an internal MPX to deal with mono/stereo/bilingual
audio. This is split off from the wis-sony-tuner driver that is part of
the go7007 driver as it should be a separate i2c sub-device driver.
The wis-sony-tuner is really three i2c devices: a standard tuner, a tda9887
compatible demodulator and this mpx. After this patch the wis-sony-tuner
can be replaced by this driver and the standard tuner driver.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] tuner: add Sony BTF tuners
Hans Verkuil [Sat, 9 Mar 2013 16:14:32 +0000 (13:14 -0300)]
[media] tuner: add Sony BTF tuners

This adds support for three Sony BTF tuners:
TUNER_SONY_BTF_PG472Z: PAL+SECAM
TUNER_SONY_BTF_PK467Z: NTSC-M-JP
TUNER_SONY_BTF_PB463Z: NTSC-M
These come from the go7007 staging driver where they were implemented in
the wis-sony-tuner i2c driver.
Adding support for these tuners to tuner-types.c is the first step towards
removing the wis-sony-tuner driver.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] go7007: fix i2c_xfer return codes
Hans Verkuil [Sat, 9 Mar 2013 09:18:03 +0000 (06:18 -0300)]
[media] go7007: fix i2c_xfer return codes

The i2c_xfer functions didn't return the proper error codes and (especially
important) on success they returned 0 instead of the number of transferred
messages.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] saa7115: add support for double-rate ASCLK
Hans Verkuil [Mon, 11 Mar 2013 06:47:25 +0000 (03:47 -0300)]
[media] saa7115: add support for double-rate ASCLK

Some devices expect a double rate ASCLK. Add a flag to let the driver know
through the s_crystal_freq call.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] saa7115: improve querystd handling for the saa7115
Hans Verkuil [Sun, 10 Mar 2013 12:59:37 +0000 (09:59 -0300)]
[media] saa7115: improve querystd handling for the saa7115

The saa7115 has better PAL/NTSC detection, so it can detect PAL even
though the chip is currently set up for NTSC.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] saa7115: add config flag to change the IDQ polarity
Hans Verkuil [Fri, 8 Mar 2013 14:22:03 +0000 (11:22 -0300)]
[media] saa7115: add config flag to change the IDQ polarity

Needed by the go7007 driver: it assumes a different polarity of the IDQ
signal, so we need to be able to tell the saa7115 about this.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l2-ctrls: add V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER control
Hans Verkuil [Sun, 17 Mar 2013 13:34:04 +0000 (10:34 -0300)]
[media] v4l2-ctrls: add V4L2_CID_MPEG_VIDEO_REPEAT_SEQ_HEADER control

Control whether video sequence headers should be repeated.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l2-ioctl: check if an ioctl is valid
Hans Verkuil [Sun, 10 Mar 2013 16:12:25 +0000 (13:12 -0300)]
[media] v4l2-ioctl: check if an ioctl is valid

Just checking if the op exists isn't correct, you should check if the ioctl
is valid (which implies that the op exists as well).
One exception is g_std: if current_norm is non-zero, then the g_std op may be
absent. This sort of weird behavior is one of the reasons why I am trying to
get rid of current_norm.
This patch fixes the case where the g/s_std op is set, but these ioctls are
disabled. This can happen in drivers supporting multiple models, some that
have TV input (and support the STD API) and some that have a sensor (and do
not support the STD API). In the latter case qv4l2 would still show the
Standards combobox.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l2-core: add code to check for specific ops
Hans Verkuil [Sun, 3 Mar 2013 23:12:31 +0000 (20:12 -0300)]
[media] v4l2-core: add code to check for specific ops

This patch adds a v4l2_subdev_has_op() macro and a v4l2_device_has_op macro to
quickly check if a specific subdev or any subdev supports a particular subdev
operation.
This makes it easy for drivers to disable certain ioctls if none of the subdevs
supports the necessary functionality.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l2-ctrls: eliminate lockdep false alarms for struct v4l2_ctrl_handler.lock
Andy Walls [Sat, 9 Mar 2013 08:55:11 +0000 (05:55 -0300)]
[media] v4l2-ctrls: eliminate lockdep false alarms for struct v4l2_ctrl_handler.lock

When calling v4l2_ctrl_add_handler(), lockdep would detect a potential
recursive locking problem on a situation that is by design intended and
not a recursive lock.  This happened because all struct
v4l2_ctrl_handler.lock mutexes were created as members of the same lock
class in v4l2_ctrl_handler_init(), and v4l2_ctrl_add_handler() takes the
hdl->lock on two different v4l2_ctrl_handler instances.
This change breaks the large lockdep lock class for struct
v4l2_ctrl_handler.lock and breaks it into v4l2_ctrl_handler
instantiation specific lock classes with meaningful class names.
This will validly eliminate lockdep alarms for v4l2_ctrl_handler locking
validation, as long as the relationships between drivers adding v4l2
controls to their own handler from other v4l2 drivers' control handlers
remains straightforward.
struct v4l2_ctrl_handler.lock lock classes are created with names such
that the output of cat /proc/lockdep indicates where in the v4l2 driver
code v4l2_ctrl_handle_init() is being called on instantiations:
ffffffffa045f490 FD:   10 BD:    8 +.+...: cx2341x:1534:(hdl)->lock
ffffffffa0497d20 FD:   12 BD:    2 +.+.+.: saa7115:1581:(hdl)->lock
ffffffffa04ac660 FD:   14 BD:    2 +.+.+.: msp3400_driver:756:(hdl)->lock
ffffffffa0484b90 FD:   12 BD:    1 +.+.+.: ivtv_gpio:366:(&itv->hdl_gpio)->lock
ffffffffa04eb530 FD:   11 BD:    2 +.+.+.: cx25840_core:1982:(&state->hdl)->lock
ffffffffa04fbc80 FD:   11 BD:    3 +.+.+.: wm8775:246:(&state->hdl)->lock
Some lock chains, that were previously causing the recursion alarms, are
now visible in the output of cat /proc/lockdep_chains:
irq_context: 0
[ffffffffa0497d20] saa7115:1581:(hdl)->lock
[ffffffffa045f490] cx2341x:1534:(hdl)->lock
irq_context: 0
[ffffffffa04ac660] msp3400_driver:756:(hdl)->lock
[ffffffffa045f490] cx2341x:1534:(hdl)->lock
irq_context: 0
[ffffffffa0484b90] ivtv_gpio:366:(&itv->hdl_gpio)->lock
[ffffffffa045f490] cx2341x:1534:(hdl)->lock
irq_context: 0
[ffffffffa04eb530] cx25840_core:1982:(&state->hdl)->lock
[ffffffffa045f490] cx2341x:1534:(hdl)->lock
irq_context: 0
[ffffffffa04fbc80] wm8775:246:(&state->hdl)->lock
[ffffffffa045f490] cx2341x:1534:(hdl)->lock

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
[hans.verkuil@cisco.com: keep mutex_init in v4l2_ctrl_handler_init_class]
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] documentation: DocBook/media : Fix typo in dvbproperty.xml
Masanari Iida [Sun, 24 Mar 2013 05:25:56 +0000 (02:25 -0300)]
[media] documentation: DocBook/media : Fix typo in dvbproperty.xml

Correct spelling typos.

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l2-ioctl: simplify debug code
Hans Verkuil [Thu, 14 Mar 2013 10:40:45 +0000 (07:40 -0300)]
[media] v4l2-ioctl: simplify debug code

The core debug code can now be simplified since all the write-only ioctls are
now const and will not modify the data they pass to the drivers.
So instead of logging write-only ioctls before the driver is called this can
now be done afterwards, which is cleaner when it comes to error reporting as
well.
This also fixes a logic error in the debugging code where there was one 'else'
too many.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l2: add const to argument of write-only s_register ioctl
Hans Verkuil [Sun, 24 Mar 2013 11:28:46 +0000 (08:28 -0300)]
[media] v4l2: add const to argument of write-only s_register ioctl

This ioctl is defined as IOW, so pass the argument as const.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] ivtv: prepare ivtv for adding const to s_register
Hans Verkuil [Sun, 24 Mar 2013 11:24:19 +0000 (08:24 -0300)]
[media] ivtv: prepare ivtv for adding const to s_register

The ivtv_itvc function receives a pointer to v4l2_dbg_register. When we
add const to that pointer in the s_register case we will run into a problem
here since this common function would discard const in that case. So
change this function so it receives the address and a pointer to a value.
In addition we now set the size field in the g_register function which is
where it belongs.
This will simplify the next patch where const will be added to s_register.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l2-ioctl: add precision when printing names
Hans Verkuil [Mon, 18 Mar 2013 14:02:22 +0000 (11:02 -0300)]
[media] v4l2-ioctl: add precision when printing names

Never print more than the size of the buffer containing the name.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l2: pass std by value to the write-only s_std ioctl
Hans Verkuil [Fri, 15 Mar 2013 09:10:40 +0000 (06:10 -0300)]
[media] v4l2: pass std by value to the write-only s_std ioctl

This ioctl is defined as IOW, so pass the argument by value instead of by
reference. I could have chosen to add const instead, but this is 1) easier
to handle in drivers and 2) consistent with the s_std subdev operation.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Jonathan Corbet <corbet@lwn.net>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
11 years ago[media] v4l2: add const to argument of write-only s_tuner ioctl
Hans Verkuil [Fri, 15 Mar 2013 09:10:06 +0000 (06:10 -0300)]
[media] v4l2: add const to argument of write-only s_tuner ioctl

This ioctl is defined as IOW, so pass the argument as const.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Alexey Klimov <klimov.linux@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>