openwrt/staging/blogic.git
14 years agoV4L/DVB: Fix IR_CORE dependencies
Mauro Carvalho Chehab [Mon, 9 Aug 2010 13:07:20 +0000 (10:07 -0300)]
V4L/DVB: Fix IR_CORE dependencies

As pointed by Randy Dunlap <randy.dunlap@oracle.com>:
> ERROR: "ir_keydown" [drivers/media/video/ir-kbd-i2c.ko] undefined!
> ERROR: "__ir_input_register" [drivers/media/video/ir-kbd-i2c.ko] undefined!
> ERROR: "get_rc_map" [drivers/media/video/ir-kbd-i2c.ko] undefined!
> ERROR: "ir_input_unregister" [drivers/media/video/ir-kbd-i2c.ko] undefined!
> ERROR: "get_rc_map" [drivers/media/video/cx88/cx88xx.ko] undefined!
> ERROR: "ir_repeat" [drivers/media/video/cx88/cx88xx.ko] undefined!
> ERROR: "ir_input_unregister" [drivers/media/video/cx88/cx88xx.ko] undefined!
> ERROR: "ir_keydown" [drivers/media/video/cx88/cx88xx.ko] undefined!
> ERROR: "__ir_input_register" [drivers/media/video/cx88/cx88xx.ko] undefined!
> ERROR: "get_rc_map" [drivers/media/video/bt8xx/bttv.ko] undefined!
> ERROR: "ir_input_unregister" [drivers/media/video/bt8xx/bttv.ko] undefined!
> ERROR: "__ir_input_register" [drivers/media/video/bt8xx/bttv.ko] undefined!
> ERROR: "ir_g_keycode_from_table" [drivers/media/IR/ir-common.ko] undefined!
>
>
> #5101:
> (.text+0x8306e2): undefined reference to `ir_core_debug'
> (.text+0x830729): undefined reference to `ir_core_debug'
> ir-functions.c:(.text+0x830906): undefined reference to `ir_core_debug'
> (.text+0x8309d8): undefined reference to `ir_g_keycode_from_table'
> (.text+0x830acf): undefined reference to `ir_core_debug'
> (.text+0x830b92): undefined reference to `ir_core_debug'
> (.text+0x830bef): undefined reference to `ir_core_debug'
> (.text+0x830c6a): undefined reference to `ir_core_debug'
> (.text+0x830cf7): undefined reference to `ir_core_debug'
> budget-ci.c:(.text+0x89f5c8): undefined reference to `ir_keydown'
> budget-ci.c:(.text+0x8a0c58): undefined reference to `get_rc_map'
> budget-ci.c:(.text+0x8a0c80): undefined reference to `__ir_input_register'
> budget-ci.c:(.text+0x8a0ee0): undefined reference to `get_rc_map'
> budget-ci.c:(.text+0x8a11cd): undefined reference to `ir_input_unregister'
> (.text+0x8a8adb): undefined reference to `ir_input_unregister'
> dvb-usb-remote.c:(.text+0x8a9188): undefined reference to `get_rc_map'
> dvb-usb-remote.c:(.text+0x8a91b1): undefined reference to `__ir_input_register'
> dvb-usb-remote.c:(.text+0x8a9238): undefined reference to `get_rc_map'
> dib0700_core.c:(.text+0x8b04ca): undefined reference to `ir_keydown'
> dib0700_devices.c:(.text+0x8b2ea8): undefined reference to `ir_keydown'
> dib0700_devices.c:(.text+0x8b2ef0): undefined reference to `ir_keydown'

Those breakages seem to be caused by two bad things at IR_CORE Kconfig:

1) cx23885 is using select for IR_CORE;
2) the dvb-usb and sms dependency for IR_CORE were missing.

While here, allow users to un-select IR.

Acked-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: tvp7002: fix write to H-PLL Feedback Divider LSB register
Rajashekhara, Sudhakar [Wed, 28 Jul 2010 08:47:48 +0000 (05:47 -0300)]
V4L/DVB: tvp7002: fix write to H-PLL Feedback Divider LSB register

H-PLL Feedback Divider LSB register is an 8 bit register out
of which the first 4 bits are reserved. Current code is
writing to these reserved location. This patch corrects
this issue by left shifting the values being written to the
register by 4.

This patch has been tested on DM6467 EVM with 720P-60 and
1080I-60 inputs.

Signed-off-by: Sudhakar Rajashekhara <sudhakar.raj@ti.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: dvb: siano: free spinlock before schedule()
Kulikov Vasiliy [Tue, 27 Jul 2010 18:42:40 +0000 (15:42 -0300)]
V4L/DVB: dvb: siano: free spinlock before schedule()

Calling schedule() holding spinlock with disables irqs is improper. As
spinlock protects list coredev->buffers, it can be unlocked untill wakeup.
This bug was introduced in a9349315f65cd6a16e8fab1f6cf0fd40f379c4db.

Signed-off-by: Kulikov Vasiliy <segooon@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: media: video: pvrusb2: remove custom hex_to_bin()
Andy Shevchenko [Tue, 27 Jul 2010 12:32:50 +0000 (09:32 -0300)]
V4L/DVB: media: video: pvrusb2: remove custom hex_to_bin()

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Acked-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: drivers: usbvideo: remove custom implementation of hex_to_bin()
Andy Shevchenko [Tue, 27 Jul 2010 12:32:49 +0000 (09:32 -0300)]
V4L/DVB: drivers: usbvideo: remove custom implementation of hex_to_bin()

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: Report supported QAM modes on bt8xx
Arnuschky [Tue, 27 Jul 2010 08:48:08 +0000 (05:48 -0300)]
V4L/DVB: Report supported QAM modes on bt8xx

Here a small patch to get a TwinHan VT DST DVB-T card working with
kernels >= 2.6.32. Analogously to
http://linuxtv.org/hg/v4l-dvb/rev/0e735b509163 I had to:

"Fill in the .caps field in struct dst_dvbt_ops (around line 1763) with
all the supported QAM modulation methods to match the capabilities of
the card as implemented in function dst_set_modulation (around line
502). Note that beginning with linux kernel version 2.6.32 the
modulation method is checked (by function dvb_frontend_check_parameters
in file drivers/media/dvb/dvb-core/dvb_frontend.c) and thus tuning fails
if you use a modulation method that is not present in the .caps field."

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: media: ir-keytable: null dereference in debug code
Dan Carpenter [Fri, 6 Aug 2010 06:31:00 +0000 (03:31 -0300)]
V4L/DVB: media: ir-keytable: null dereference in debug code

"ir_dev->props" can be NULL.  We only use raw mode if "ir_dev->props" is
non-NULL and "ir_dev->props->driver_type == RC_DRIVER_IR_RAW".

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: ivtv: convert to the new control framework
Hans Verkuil [Sun, 27 Jun 2010 09:07:26 +0000 (06:07 -0300)]
V4L/DVB: ivtv: convert to the new control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: ivtv: convert gpio subdev to new control framework
Hans Verkuil [Fri, 23 Apr 2010 12:09:41 +0000 (09:09 -0300)]
V4L/DVB: ivtv: convert gpio subdev to new control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: wm8739: convert to the new control framework
Hans Verkuil [Mon, 24 May 2010 13:18:26 +0000 (10:18 -0300)]
V4L/DVB: wm8739: convert to the new control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cs53l32a: convert to new control framework
Hans Verkuil [Fri, 23 Apr 2010 13:39:25 +0000 (10:39 -0300)]
V4L/DVB: cs53l32a: convert to new control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: wm8775: convert to the new control framework
Hans Verkuil [Sat, 24 Apr 2010 11:23:53 +0000 (08:23 -0300)]
V4L/DVB: wm8775: convert to the new control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx2341x: convert to the control framework
Hans Verkuil [Mon, 24 May 2010 13:16:43 +0000 (10:16 -0300)]
V4L/DVB: cx2341x: convert to the control framework

Since this module is also used by drivers that are not yet converted, the old
and new code have to co-exist.

The source is split into three parts: a common part at the top, which is used
by both old and new code, then the old code followed by the new control
framework implementation. This new code is much more readable (and shorter!)
than the original code.

Once all bridge drivers that use this are converted the old code can be
deleted.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx25840: convert to the new control framework
Hans Verkuil [Fri, 6 Aug 2010 13:55:39 +0000 (10:55 -0300)]
V4L/DVB: cx25840: convert to the new control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx25840/ivtv: replace ugly priv control with s_config
Hans Verkuil [Fri, 6 Aug 2010 13:53:19 +0000 (10:53 -0300)]
V4L/DVB: cx25840/ivtv: replace ugly priv control with s_config

The cx25840 used a private control CX25840_CID_ENABLE_PVR150_WORKAROUND
to be told whether to enable a workaround for certain pvr150 cards.

This is really config data that it needs to get at load time.

Implemented this in cx25840 and ivtv.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: saa717x: convert to the new control framework
Hans Verkuil [Fri, 23 Apr 2010 12:04:48 +0000 (09:04 -0300)]
V4L/DVB: saa717x: convert to the new control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: msp3400: convert to the new control framework
Hans Verkuil [Mon, 24 May 2010 13:01:58 +0000 (10:01 -0300)]
V4L/DVB: msp3400: convert to the new control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: saa7115: convert to the new control framework
Hans Verkuil [Mon, 24 May 2010 13:00:52 +0000 (10:00 -0300)]
V4L/DVB: saa7115: convert to the new control framework

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: v4l2: hook up the new control framework into the core framework
Hans Verkuil [Sun, 16 May 2010 12:24:06 +0000 (09:24 -0300)]
V4L/DVB: v4l2: hook up the new control framework into the core framework

Add the calls needed to automatically merge subdev controls into a bridge
control handler.

Hook up the control framework in __video_ioctl2 and video_register_device.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: Documentation: add v4l2-controls.txt documenting the new controls API
Hans Verkuil [Sun, 1 Aug 2010 17:35:53 +0000 (14:35 -0300)]
V4L/DVB: Documentation: add v4l2-controls.txt documenting the new controls API

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: v4l2-ctrls: Whitespace cleanups
Mauro Carvalho Chehab [Fri, 6 Aug 2010 12:57:02 +0000 (09:57 -0300)]
V4L/DVB: v4l2-ctrls: Whitespace cleanups

Fixes 37 checkpatch.pl warnings like:

WARNING: please, no space before tabs
+^Icase V4L2_CID_MPEG_VIDEO_PULLDOWN: ^Ireturn "Video Pulldown";$

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: v4l2-ctrls: reorder 'case' statements to match order in header
Hans Verkuil [Sun, 25 Apr 2010 22:21:00 +0000 (19:21 -0300)]
V4L/DVB: v4l2-ctrls: reorder 'case' statements to match order in header

To make it easier to determine whether all controls are added in v4l2-ctrls.c
the case statements inside the switch are re-ordered to match the header.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: v4l2: Add new control handling framework
Hans Verkuil [Sun, 1 Aug 2010 17:32:42 +0000 (14:32 -0300)]
V4L/DVB: v4l2: Add new control handling framework

Add a new framework to handle controls which makes life for driver
developers much easier.

Note that this patch moves some of the control support that used to be in
v4l2-common.c to v4l2-ctrls.c. The tables were copied unchanged. The body
of v4l2_ctrl_query_fill() was copied to a new v4l2_ctrl_fill() function
in v4l2-ctrls.c. This new function doesn't use the v4l2_queryctrl
struct anymore, which makes it more general.

The remainder of v4l2-ctrls.c is all new. Highlights include:

- No need to implement VIDIOC_QUERYCTRL, QUERYMENU, S_CTRL, G_CTRL,
  S_EXT_CTRLS, G_EXT_CTRLS or TRY_EXT_CTRLS in either bridge drivers
  or subdevs. New wrapper functions are provided that can just be plugged in.
  Once everything has been converted these wrapper functions can be removed as well.

- When subdevices are added their controls can be automatically merged
  with the bridge driver's controls.

- Most drivers just need to implement s_ctrl to set the controls.
  The framework handles the locking and tries to be as 'atomic' as possible.

- Ready for the subdev device nodes: the same mechanism applies to subdevs
  and their device nodes as well. Sub-device drivers can make controls
  local, preventing them from being merged with bridge drivers.

- Takes care of backwards compatibility handling of VIDIOC_S_CTRL and
  VIDIOC_G_CTRL. Handling of V4L2_CID_PRIVATE_BASE is fully transparent.
  CTRL_CLASS controls are automatically added.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: v4l: s5p-fimc: Fix coding style issues
Pawel Osciak [Fri, 6 Aug 2010 13:50:46 +0000 (10:50 -0300)]
V4L/DVB: v4l: s5p-fimc: Fix coding style issues

Signed-off-by: Pawel Osciak <p.osciak@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: mt9m111: init chip after read CHIP_VERSION
Michael Grzeschik [Tue, 3 Aug 2010 10:57:40 +0000 (07:57 -0300)]
V4L/DVB: mt9m111: init chip after read CHIP_VERSION

Moved mt9m111_init after the chip version detection passage: I
don't like the idea of writing on a device we haven't identified
yet.

Signed-off-by: Philipp Wiesner <p.wiesner@phytec.de>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: mt9m111: Added indication that MT9M131 is supported by this driver
Philipp Wiesner [Tue, 3 Aug 2010 10:57:39 +0000 (07:57 -0300)]
V4L/DVB: mt9m111: Added indication that MT9M131 is supported by this driver

Added this info to Kconfig and mt9m111.c, some comment cleanup,
replaced 'mt9m11x'-statements by clarifications or driver name.
Driver is fully compatible to mt9m131 which has only additional functions
compared to mt9m111. Those aren't used anyway at the moment.

Signed-off-by: Philipp Wiesner <p.wiesner@phytec.de>
Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: mx2_camera: add rising edge for pixclock
Michael Grzeschik [Tue, 3 Aug 2010 09:37:55 +0000 (06:37 -0300)]
V4L/DVB: mx2_camera: add rising edge for pixclock

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: mx2_camera: fix for list bufnum in frame_done_emma
Michael Grzeschik [Tue, 3 Aug 2010 09:37:54 +0000 (06:37 -0300)]
V4L/DVB: mx2_camera: fix for list bufnum in frame_done_emma

The emma uses bufnum 1 and 0. This patch tells the bufqueue to change
the next buffer to the next one and not the current one.
Otherwise the BUG_ON above will trigger everytime.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: V4L: do not autoselect components on embedded systems
Guennadi Liakhovetski [Thu, 5 Aug 2010 21:09:28 +0000 (18:09 -0300)]
V4L/DVB: V4L: do not autoselect components on embedded systems

Tuner, DVB frontend and video helper chip drivers are by default
autoselected by their respective host cards, this, however, doesn't make
much sense on SoC-based systems. Disable autoselection on EMBEDDED
systems.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: soc-camera: prohibit S_CROP, if internal G_CROP has failed
Guennadi Liakhovetski [Thu, 5 Aug 2010 22:23:44 +0000 (19:23 -0300)]
V4L/DVB: soc-camera: prohibit S_CROP, if internal G_CROP has failed

There is no sense in trying to set cropping if we cannot get current one
from the host driver.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - zc3xx: Redefine the exchanges of sensor mt9v111 (mi0360soc)
Jean-François Moine [Wed, 4 Aug 2010 10:25:12 +0000 (07:25 -0300)]
V4L/DVB: gspca - zc3xx: Redefine the exchanges of sensor mt9v111 (mi0360soc)

The exchanges for sensor mt9v111 are different with bridges zc301 and zc303.
The exchanges for the bridge zc303 were those of the bad named tas5130ck.
These mt9v111 exchanges have been adjusted from the ms-Windows public files
vm30x.inf (for 0ac8:301b) and usbvm303.inf (for 0ac8:303b).

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - zc3xx: Add the light frequency control for sensor hv7131r
Jean-François Moine [Wed, 4 Aug 2010 10:12:57 +0000 (07:12 -0300)]
V4L/DVB: gspca - zc3xx: Add the light frequency control for sensor hv7131r

The new exchanges are extracted from the public file lPEPI264v.inf of the
ms-Windows driver. In this file, the sensor is named hv7131b but the exchanges
are those of the hv7131r.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - zc3xx: Possible use of the highest alternate setting
Jean-François Moine [Wed, 4 Aug 2010 09:08:52 +0000 (06:08 -0300)]
V4L/DVB: gspca - zc3xx: Possible use of the highest alternate setting

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - zc3xx: Do the sensor probe at resume time
Jean-François Moine [Wed, 4 Aug 2010 09:07:23 +0000 (06:07 -0300)]
V4L/DVB: gspca - zc3xx: Do the sensor probe at resume time

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - zc3xx: Check the USB exchanges
Jean-François Moine [Wed, 4 Aug 2010 08:44:13 +0000 (05:44 -0300)]
V4L/DVB: gspca - zc3xx: Check the USB exchanges

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - zc3xx: Cleanup source
Jean-François Moine [Wed, 4 Aug 2010 08:11:23 +0000 (05:11 -0300)]
V4L/DVB: gspca - zc3xx: Cleanup source

- use an enum to define the sensor numbers
- use the sensor numbers to index the associated tables
- rename TAS5130CXX to TAS5130C
- rename HV7131C to HV7131R
- change some comments

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - main: Fix a crash in gspca_frame_add()
Jean-François Moine [Thu, 29 Jul 2010 05:46:02 +0000 (02:46 -0300)]
V4L/DVB: gspca - main: Fix a crash in gspca_frame_add()

Some webcams as ov511 may find many times an end of image.
In this case, with the last patch in image concatenation
(commit 799b1bd41f398054d46fd35f73abd01c4009f6ca),
the image pointer was NULL and the system crashed in memcpy().

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: v4l: Add driver for Samsung S5P SoC video postprocessor
Sylwester Nawrocki [Tue, 3 Aug 2010 12:50:29 +0000 (09:50 -0300)]
V4L/DVB: v4l: Add driver for Samsung S5P SoC video postprocessor

This driver exports a video device node per each camera interface/
video postprocessor (FIMC) device contained in Samsung S5P SoC series.
The driver is based on v4l2-mem2mem framework.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Pawel Osciak <p.osciak@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: uvcvideo: Add support for Miricle 307K thermal webcam
Laurent Pinchart [Tue, 3 Aug 2010 14:18:01 +0000 (11:18 -0300)]
V4L/DVB: uvcvideo: Add support for Miricle 307K thermal webcam

The camera requires the STREAM_NO_FID quirk. Add a corresponding entry
in the device IDs list.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: uvcvideo: Drop corrupted compressed frames
Laurent Pinchart [Thu, 17 Jun 2010 09:52:37 +0000 (06:52 -0300)]
V4L/DVB: uvcvideo: Drop corrupted compressed frames

Corrupted video frames are dropped by default by the driver for
uncompressed formats. Data corruption is not less problematic for
compressed formats, so frame drop should be enabled by default for those
formats as well.

Mark buffers as faulty when an isochronous packet loss is detected for
any format, or when the buffer length doesn't match the image size for
uncompressed formats. Drop erroneous buffers regardless of whether the
format is compressed or uncompressed.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR keymap: Add print button for HP OEM version of MCE remote
Andy Walls [Sat, 31 Jul 2010 17:23:04 +0000 (14:23 -0300)]
V4L/DVB: IR keymap: Add print button for HP OEM version of MCE remote

This patch adds a defintion for the "Print" button found on HP OEM
versions of the MCE remote.  All of the other keys found on the HP OEM
version of the remote match the other keys as already defined.

Because, who doesn't need "remote printing", while one is sitting on the
couch across from one's PC? ;)

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Acked-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR: Port ene driver to new IR subsystem and enable it
Maxim Levitsky [Sat, 31 Jul 2010 14:59:26 +0000 (11:59 -0300)]
V4L/DVB: IR: Port ene driver to new IR subsystem and enable it

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: STAGING: remove lirc_ene0100 driver
Maxim Levitsky [Sat, 31 Jul 2010 14:59:25 +0000 (11:59 -0300)]
V4L/DVB: STAGING: remove lirc_ene0100 driver

Add latest unported version of this driver to media/IR.
Next patch will port it to ir core.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR: report unknown scancodes the in-kernel decoders found
Maxim Levitsky [Sat, 31 Jul 2010 14:59:24 +0000 (11:59 -0300)]
V4L/DVB: IR: report unknown scancodes the in-kernel decoders found

This way it is possible to use evtest to create keymap for unknown remote.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR: extend interfaces to support more device settings
Maxim Levitsky [Sat, 31 Jul 2010 14:59:23 +0000 (11:59 -0300)]
V4L/DVB: IR: extend interfaces to support more device settings

LIRC: add new IOCTL that enables learning mode (wide band receiver)
Still missing features: carrier report & timeout reports.
Will need to pack these into ir_raw_event

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR: add helper function for hardware with small o/b buffer
Maxim Levitsky [Sat, 31 Jul 2010 14:59:22 +0000 (11:59 -0300)]
V4L/DVB: IR: add helper function for hardware with small o/b buffer

Some ir input devices have small buffer, and interrupt the host
each time it is full (or half full)

Add a helper that automaticly handles timeouts, and also
automaticly merges samples of same time (space-space)
Such samples might be placed by hardware because size of
sample in the buffer is small (a byte for example).

Also remove constness from ir_dev_props, because it now contains timeout
settings that driver might want to change

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Acked-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR: Allow not to compile keymaps in
Maxim Levitsky [Sat, 31 Jul 2010 14:59:21 +0000 (11:59 -0300)]
V4L/DVB: IR: Allow not to compile keymaps in

Currently, ir device registration fails if keymap requested by driver is not found.
Fix that by always compiling in the empty keymap, and using it as a failback.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Acked-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR: NECX: support repeat
Maxim Levitsky [Sat, 31 Jul 2010 14:59:20 +0000 (11:59 -0300)]
V4L/DVB: IR: NECX: support repeat

This adds support for repeat detecting for NECX variant
Tested with uneversal remote

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR: nec decoder: fix repeat
Maxim Levitsky [Sat, 31 Jul 2010 14:59:19 +0000 (11:59 -0300)]
V4L/DVB: IR: nec decoder: fix repeat

Repeat space is 4 units, not 8.
Current code would never trigger a repeat.

However that isn't true for NECX, so repeat there
must be handled differently.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Reviewed-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR: JVC: make repeat work
Maxim Levitsky [Sat, 31 Jul 2010 14:59:18 +0000 (11:59 -0300)]
V4L/DVB: IR: JVC: make repeat work

Currently, jvc decoder will attempt misdetect next press as a repeat
of last keypress, therefore second keypress isn't detected.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR: replace workqueue with kthread
Maxim Levitsky [Sat, 31 Jul 2010 14:59:17 +0000 (11:59 -0300)]
V4L/DVB: IR: replace workqueue with kthread

It is perfectly possible to have ir_raw_event_work
running concurently on two cpus, thus we must protect
it from that situation.

This stems from the fact that if hardware sends short packets of samples
we might end up queueing the work item more times that nessesary.

Such job isn't well suited for a workqueue, so use a kernel thread.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR: replace spinlock with mutex
Maxim Levitsky [Sat, 31 Jul 2010 14:59:16 +0000 (11:59 -0300)]
V4L/DVB: IR: replace spinlock with mutex

Some handlers (lirc for example) allocates memory on initialization,
doing so in atomic context is cumbersome.
Fixes warning about sleeping function in atomic context.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR: minor fixes
Maxim Levitsky [Sat, 31 Jul 2010 14:59:15 +0000 (11:59 -0300)]
V4L/DVB: IR: minor fixes

* lirc: Don't propagate reset event to userspace
* lirc: Remove strange logic from lirc that would make first sample always be pulse
* Make TO_US macro actualy print what it should.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR: Kconfig fixes
Maxim Levitsky [Sat, 31 Jul 2010 14:59:14 +0000 (11:59 -0300)]
V4L/DVB: IR: Kconfig fixes

Move IR drives below separate menu.
This allows to disable them.
Also correct a typo.

Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR: put newly ported streamzap driver in proper home
Jarod Wilson [Mon, 2 Aug 2010 18:46:03 +0000 (15:46 -0300)]
V4L/DVB: IR: put newly ported streamzap driver in proper home

Moves drivers/staging/lirc/lirc_streamzap.c to
drivers/media/IR/streamzap.c, along with making the requisite Kconfig
and Makefile changes.

Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: staging/lirc: port lirc_streamzap to ir-core
Jarod Wilson [Tue, 3 Aug 2010 04:07:04 +0000 (01:07 -0300)]
V4L/DVB: staging/lirc: port lirc_streamzap to ir-core

This ports lirc_streamzap.c over to ir-core in-place, to be followed by
a patch moving the driver over to drivers/media/IR/streamzap.c and
enabling the proper Kconfig bits.

Presently, the in-kernel keymap doesn't work, as the stock Streamzap
remote uses an RC-5-like, but not-quite-RC-5 protocol, which the
in-kernel RC-5 decoder doesn't cope with. The remote can be used right
now with the lirc bridge driver though, and other remotes (at least an
RC-6(A) MCE remote) work perfectly with the driver.

I'll take a look at making the existing RC-5 decoder cope with this odd
duck, possibly implement another standalone decoder engine, or just
throw up my hands and say "meh, use lirc"... But the driver itself
should be perfectly sound.

Remaining items on the streamzap TODO list:
- add LIRC_SET_REC_TIMEOUT-alike support
- add LIRC_GET_M{AX,IN}_TIMEOUT-alike support
- add LIRC_GET_REC_RESOLUTION-alike support

All of the above should be trivial to add. There are patches pending to
add this support to ir-core from Maxim Levitsky, and I'll take care of
these once his patches get integrated. None of them are currently
essential though.

Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR/mceusb: less generic callback name and remove cruft
Jarod Wilson [Mon, 2 Aug 2010 21:21:06 +0000 (18:21 -0300)]
V4L/DVB: IR/mceusb: less generic callback name and remove cruft

Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: staging/lirc: fix non-CONFIG_MODULES build horkage
Jarod Wilson [Thu, 29 Jul 2010 21:20:44 +0000 (18:20 -0300)]
V4L/DVB: staging/lirc: fix non-CONFIG_MODULES build horkage

Fix when CONFIG_MODULES is not enabled:

drivers/staging/lirc/lirc_parallel.c:243: error: implicit declaration of function 'module_refcount'
drivers/staging/lirc/lirc_it87.c:150: error: implicit declaration of function 'module_refcount'
drivers/built-in.o: In function `it87_probe':
lirc_it87.c:(.text+0x4079b0): undefined reference to `init_chrdev'
lirc_it87.c:(.text+0x4079cc): undefined reference to `drop_chrdev'
drivers/built-in.o: In function `lirc_it87_exit':
lirc_it87.c:(.exit.text+0x38a5): undefined reference to `drop_chrdev'

Its a quick hack and untested beyond building, since I don't have the
hardware, but it should do the trick.

Acked-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: staging/lirc: fix Kconfig dependencies
Janne Grunau [Thu, 29 Jul 2010 15:24:22 +0000 (12:24 -0300)]
V4L/DVB: staging/lirc: fix Kconfig dependencies

Signed-off-by: Janne Grunau <j@jannau.net>
Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR/mceusb: remove bad ir_input_dev use
Jarod Wilson [Thu, 29 Jul 2010 21:34:52 +0000 (18:34 -0300)]
V4L/DVB: IR/mceusb: remove bad ir_input_dev use

The ir_input_dev gets filled in by __ir_input_register, the one
allocated in mceusb_init_input_dev was being overwritten by the correct
one shortly after it was initialized (ultimately resulting in a memory
leak). This bug was inherited from imon.c, and was pointed out to me by
Maxim Levitsky.

v2: fix incorrect dev arg to dev_dbg

Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR/imon: remove bad ir_input_dev use
Jarod Wilson [Wed, 28 Jul 2010 01:29:44 +0000 (22:29 -0300)]
V4L/DVB: IR/imon: remove bad ir_input_dev use

The ir_input_dev gets filled in by __ir_input_register, the one
allocated in imon_init_idev was being overwritten by the correct one
shortly after it was initialized (ultimately resulting in a memory
leak). Additionally, there was an ill-advised memcpy into that
extraneous ir_input_dev which gets fixed by this.

Ill-advised memcpy pointed out by Dmitry Torokhov, bad usage of
ir_input_dev pointed out by Maxim Levitsky.

Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: IR/imon: remove incorrect calls to input_free_device
Jarod Wilson [Mon, 26 Jul 2010 14:11:36 +0000 (11:11 -0300)]
V4L/DVB: IR/imon: remove incorrect calls to input_free_device

Per Dmitry Torokhov, following input_unregister_device with an
input_free_device is forbidden, the former is sufficient alone.

Acked-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Jarod Wilson <jarod@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: v4l2_subdev: Get rid of now unused IR pulse width defines
Andy Walls [Sun, 1 Aug 2010 05:36:20 +0000 (02:36 -0300)]
V4L/DVB: v4l2_subdev: Get rid of now unused IR pulse width defines

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885, cx25840: Change IR measurment records to use struct ir_raw_event
Andy Walls [Sun, 1 Aug 2010 05:18:13 +0000 (02:18 -0300)]
V4L/DVB: cx23885, cx25840: Change IR measurment records to use struct ir_raw_event

The CX23885 and CX25840 modules were using their own simple
IR pulse width measurement record type which required conversion
when passing to the new IR core.  This change makes that record type
consistent with the new IR core and removes a data conversion.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885, cx25840: Report the actual length of an IR Rx timeout event
Andy Walls [Sun, 1 Aug 2010 02:28:37 +0000 (23:28 -0300)]
V4L/DVB: cx23885, cx25840: Report the actual length of an IR Rx timeout event

Instead of reporting an IR Rx timeout event as a ridiculously
long space, report it as a space of the lenght of the timeout.

This partially fixes operation with LIRC without breaking
interoperation with the in kernel decoders.  The gaps lengths
reported to LIRC are still not real however.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885, cx25840: Report IR max pulse width regardless of mod/demod use
Andy Walls [Sun, 1 Aug 2010 00:57:42 +0000 (21:57 -0300)]
V4L/DVB: cx23885, cx25840: Report IR max pulse width regardless of mod/demod use

Compute and report the maximum IR pulse measurment width, even
if we are set to perform carrier modulation or demodulation and
the number is fixed by the carrier freq.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885: Change Kconfig dependencies to new IR_CORE functions
Andy Walls [Thu, 29 Jul 2010 02:48:24 +0000 (23:48 -0300)]
V4L/DVB: cx23885: Change Kconfig dependencies to new IR_CORE functions

This driver no longer depends on the old IR functions selected by
VIDEO_IR.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885: Require user to explicitly enable CX2388[57] IR via module param
Andy Walls [Tue, 20 Jul 2010 00:22:05 +0000 (21:22 -0300)]
V4L/DVB: cx23885: Require user to explicitly enable CX2388[57] IR via module param

The CX23885 IR controller was reported to cause an interrupt storm
on a TeVii S470 card, but was reported fine on an HVR-1250.  Keep
integrated IR disabled by default on CX2388[57] based cards to avoid
a bad user experience in the general case.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885: Move AV Core irq handling to a work handler
Andy Walls [Mon, 19 Jul 2010 04:35:46 +0000 (01:35 -0300)]
V4L/DVB: cx23885: Move AV Core irq handling to a work handler

Interrupts from the AV Core are best handled by a workqueue handler
since many I2C transactions are required to service the AV Core
interrupt.  The AV_CORE PCI interrupt is disabled by the IRQ handler
and reenabled when the work handler is finished.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885: Protect PCI interrupt mask manipulations with a spinlock
Andy Walls [Mon, 19 Jul 2010 04:19:43 +0000 (01:19 -0300)]
V4L/DVB: cx23885: Protect PCI interrupt mask manipulations with a spinlock

This patch encapsulates access to the PCI_INT_MSK register and
dev->pci_irqmask variable and protects them with a spinlock.
This is needed because both the hard IRQ handler and a workhandler
will need to manipulate the mask to disable the AV_CORE interrupt.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885: Add preliminary IR Rx support for the HVR-1250 and TeVii S470
Andy Walls [Mon, 19 Jul 2010 03:41:41 +0000 (00:41 -0300)]
V4L/DVB: cx23885: Add preliminary IR Rx support for the HVR-1250 and TeVii S470

Add initial IR Rx support using the intergrated IR controller in the
A/V core of the CX23885 bridge chip.

This initial support is flawed in that I2C transactions should not
be performed in a hard irq context.  That will be fixed in a
follow on patch.

The TeVii S470 support is reported to generate perptual interrupts
that renders a user' system nearly unusable.  The TeVii S470 IR
will be disabled by default in a follow on patch.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885: Add a v4l2_subdev group id for the CX2388[578] integrated AV core
Andy Walls [Mon, 19 Jul 2010 02:26:29 +0000 (23:26 -0300)]
V4L/DVB: cx23885: Add a v4l2_subdev group id for the CX2388[578] integrated AV core

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx25840: Add support for CX2388[57] A/V core integrated IR controllers
Andy Walls [Mon, 19 Jul 2010 01:08:03 +0000 (22:08 -0300)]
V4L/DVB: cx25840: Add support for CX2388[57] A/V core integrated IR controllers

This patch is primarily a port of the integrated IR controller code in
cx23885/cx23888-ir.c.  Right now, only the CX2388[57] AV core will
really try to set up IR. This IR support, by design, still requires the
bridge driver to do final IO pin mux configuration and setup of the IR
controller parameters.

For the CX2388[578] chips, enabling the AV Core for IR also starts
sending Audio and Video interrupts to the bridge driver.  For
CX2388[578] chips audio and video interrupts are ignored and
acknowledged when they happen.

IR interrupt handling and status logging is exluded for the CX23888
which does not have an IR controller on the AV core.

Note that experimentation reveals that the IR irq enables on the
CX23885 have an inverted logic sense.  The CX23887 likely suffers from
the same quirk.  For these chips, those irq enable bits are handled
as interrupt disables.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: v4l2_subdev: Move interrupt_service_routine ptr to v4l2_subdev_core_ops
Andy Walls [Sun, 18 Jul 2010 23:54:52 +0000 (20:54 -0300)]
V4L/DVB: v4l2_subdev: Move interrupt_service_routine ptr to v4l2_subdev_core_ops

The CX2584x and related cores are multifunction subdevices with a number
of internal blocks that act as interrupt sources.  Move the v4L2_subdev
interrupt_service_routine callback from v4l_subdev_ir_ops to
v4l2_subdev_core_ops, as the video and audio blocks of a CX2584x and
related cores can generate interrupts along with the IR block.  This
change also makes sense for other subdev's that generate interrupts and
do not have an IR block.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885: For CX23888 IR, configure the IO pin mux IR pins explcitly
Andy Walls [Sun, 18 Jul 2010 23:26:37 +0000 (20:26 -0300)]
V4L/DVB: cx23885: For CX23888 IR, configure the IO pin mux IR pins explcitly

Explicitly configure the IR Tx and IR Rx pins to be driven by the
IR Rx and Tx pads from the AV core for CX23888 IR.

For the HVR-1850 and HVR-1290 configure the IR Tx level inversion,
so the Tx LED is off when idle.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: v4l2_subdev, cx23885: Differentiate IR carrier sense and I/O pin inversion
Andy Walls [Sun, 18 Jul 2010 22:57:25 +0000 (19:57 -0300)]
V4L/DVB: v4l2_subdev, cx23885: Differentiate IR carrier sense and I/O pin inversion

There is a distinction on IR Tx for the CX2388[578] chips of carrier
sense inversion (space is a carrier burst and mark is no burst) and I/O
pin level inversion (0 is high output level, 1 is low output level).
Allow the caller to set these parameters distinctly as v4l2_subdevice
IR parameters.  This permits the IR device to be configured and enabled
without the IR Tx LED being on during idle/space time due to an external
hardware level inversion

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx25840: Add s_io_pin_config core subdev ops for the CX2388[578]
Andy Walls [Sun, 18 Jul 2010 22:39:54 +0000 (19:39 -0300)]
V4L/DVB: cx25840: Add s_io_pin_config core subdev ops for the CX2388[578]

Add s_io_pin_config core subdev op for the CX2388[578] AV cores.
This is complete for IR_RX, IR_TX, GPIOs 16,19-23, and IRQ_N.
It likely needs work for the I2S signal direction.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: v4l2_subdev: Add s_io_pin_config to v4l2_subdev_core_ops
Andy Walls [Sun, 18 Jul 2010 21:51:10 +0000 (18:51 -0300)]
V4L/DVB: v4l2_subdev: Add s_io_pin_config to v4l2_subdev_core_ops

Add a method to v4l2_sudev_core_ops to allow bridge drivers to
manage what signal pads/functions are routed out to multiplexed IO pins on a
pin by pin basis.  The interface also allows specifying initial output settings
for pins and disabling an IO pin altogether.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885: Add a VIDIOC_LOG_STATUS ioctl function for analog video devices
Andy Walls [Sun, 18 Jul 2010 21:18:06 +0000 (18:18 -0300)]
V4L/DVB: cx23885: Add a VIDIOC_LOG_STATUS ioctl function for analog video devices

Add a simple log_status function for raw analog video capture device nodes,
to provide insight into the state of the CX2388[578] A/V decoder core.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885: Add correct detection of the HVR-1250 model 79501
Andy Walls [Sun, 18 Jul 2010 20:35:00 +0000 (17:35 -0300)]
V4L/DVB: cx23885: Add correct detection of the HVR-1250 model 79501

The offset in the eeprom data for the 79501 version of the HVR-1250 is at 0xc0
vs. the standard 0x80.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx25840: Make cx25840 i2c register read transactions atomic
Andy Walls [Sun, 18 Jul 2010 20:16:16 +0000 (17:16 -0300)]
V4L/DVB: cx25840: Make cx25840 i2c register read transactions atomic

There was a small window between writing the cx25840 register
address over the i2c bus and reading the register contents back from the
cx25840 device that the i2c adapter lock was released.  This change ensures the
adapter lock is not released until the register read is done.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885: i2c_wait_done returns 0 or 1, don't check for < 0 return value
Jean Delvare [Sun, 18 Jul 2010 20:05:17 +0000 (17:05 -0300)]
V4L/DVB: cx23885: i2c_wait_done returns 0 or 1, don't check for < 0 return value

Function i2c_wait_done() never returns negative values, so there is no
point in checking for them.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885: Check for slave nack on all transactions
Jean Delvare [Sun, 18 Jul 2010 19:52:05 +0000 (16:52 -0300)]
V4L/DVB: cx23885: Check for slave nack on all transactions

Don't just check for nacks on zero-length transactions. Check on
other transactions too.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: cx23885: Return -ENXIO on slave nack
Jean Delvare [Sun, 18 Jul 2010 19:48:47 +0000 (16:48 -0300)]
V4L/DVB: cx23885: Return -ENXIO on slave nack

Documentation/i2c/fault-codes says that i2c adapter drivers should
return -ENXIO when no slave acks an address byte.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - vc032x: Force main register write at probe time (poxxxx)
Jean-François Moine [Tue, 27 Jul 2010 08:34:49 +0000 (05:34 -0300)]
V4L/DVB: gspca - vc032x: Force main register write at probe time (poxxxx)

On laptops, the webcam sometimes disconnects when writing the first main
register (b300). This patch prevents the creation of a new /dev/video<n>
on streaming start.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - vc032x: Do sensor probe at resume time
Jean-François Moine [Mon, 26 Jul 2010 10:59:23 +0000 (07:59 -0300)]
V4L/DVB: gspca - vc032x: Do sensor probe at resume time

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - vc032x: Add more controls for poxxxx
Jean-François Moine [Mon, 26 Jul 2010 10:53:57 +0000 (07:53 -0300)]
V4L/DVB: gspca - vc032x: Add more controls for poxxxx

The added controls are exposure, gain, autogain and backlight compensation.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - sq930x: Cleanup source, add comments
Jean-François Moine [Mon, 26 Jul 2010 10:27:13 +0000 (07:27 -0300)]
V4L/DVB: gspca - sq930x: Cleanup source, add comments

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - sq930x: Change the horizontal blanking of sensor mt9v111
Jean-François Moine [Mon, 26 Jul 2010 10:25:44 +0000 (07:25 -0300)]
V4L/DVB: gspca - sq930x: Change the horizontal blanking of sensor mt9v111

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - sq930x: Change image format to Bayer mode
Jean-François Moine [Mon, 26 Jul 2010 10:23:00 +0000 (07:23 -0300)]
V4L/DVB: gspca - sq930x: Change image format to Bayer mode

The JPEG format did not work fine. The Bayer format offers correct VGA (640x480)
resolution, but bad QQVGA (160x120). This last resolution is removed.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - sq930x: Change the default values of gain and exposure
Jean-François Moine [Mon, 26 Jul 2010 10:09:32 +0000 (07:09 -0300)]
V4L/DVB: gspca - sq930x: Change the default values of gain and exposure

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - sq930x: Change the gain value for Micron sensors
Jean-François Moine [Mon, 26 Jul 2010 09:58:18 +0000 (06:58 -0300)]
V4L/DVB: gspca - sq930x: Change the gain value for Micron sensors

The bit 7 of the sensor gain register multiplies the 7bits value by two.
It is now always set with half the user gain value.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - sq930x: Bad init sequence for sensor mt9v111
Jean-François Moine [Mon, 26 Jul 2010 09:50:31 +0000 (06:50 -0300)]
V4L/DVB: gspca - sq930x: Bad init sequence for sensor mt9v111

The start_1 exchange must be done by (reg, val) * 5 and not 8.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - main: Version change
Jean-François Moine [Mon, 26 Jul 2010 09:47:35 +0000 (06:47 -0300)]
V4L/DVB: gspca - main: Version change

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoV4L/DVB: gspca - sonixj / sq930x / t613: Remove unused variable in struct sd
Jean-François Moine [Mon, 26 Jul 2010 09:39:40 +0000 (06:39 -0300)]
V4L/DVB: gspca - sonixj / sq930x / t613: Remove unused variable in struct sd

The sensor enum definition was not at the right place.

Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
14 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
Linus Torvalds [Sun, 8 Aug 2010 17:10:11 +0000 (10:10 -0700)]
Merge git://git./linux/kernel/git/cmetcalf/linux-tile

* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
  arch/tile: check kmalloc() result
  arch/tile: catch up on various minor cleanups.
  arch/tile: avoid erroneous error return for PTRACE_POKEUSR.
  tile: set ARCH_KMALLOC_MINALIGN
  tile: remove homegrown L1_CACHE_ALIGN macro
  arch/tile: Miscellaneous cleanup changes.
  arch/tile: Split the icache flush code off to a generic <arch> header.
  arch/tile: Fix bug in support for atomic64_xx() ops.
  arch/tile: Shrink the tile-opcode files considerably.
  arch/tile: Add driver to enable access to the user dynamic network.
  arch/tile: Enable more sophisticated IRQ model for 32-bit chips.
  Move list types from <linux/list.h> to <linux/types.h>.
  Add wait4() back to the set of <asm-generic/unistd.h> syscalls.
  Revert adding some arch-specific signal syscalls to <linux/syscalls.h>.
  arch/tile: Do not use GFP_KERNEL for dma_alloc_coherent(). Feedback from fujita.tomonori@lab.ntt.co.jp.
  arch/tile: core support for Tilera 32-bit chips.
  Fix up the "generic" unistd.h ABI to be more useful.

14 years agoMerge branch 'for-linus' of git://www.jni.nu/cris
Linus Torvalds [Sun, 8 Aug 2010 17:08:26 +0000 (10:08 -0700)]
Merge branch 'for-linus' of git://www.jni.nu/cris

* 'for-linus' of git://www.jni.nu/cris: (51 commits)
  CRIS: Fix alignment problem for older ld
  CRIS: Always dump registers for segfaulting process.
  CRIS: Add config for pausing a seg-faulting process
  CRIS: Don't take faults while in_atomic
  CRIS: Fixup lookup for delay slot faults
  CRIS: Discard exit.text and .data at runtime
  CRIS: Add cache aligned and read mostly data sections
  CRIS: Return something from profile write
  CRIS: Add ARTPEC-3 and timestamps for sync-serial
  CRIS: Better ARTPEC-3 support for gpio
  CRIS: Add include guard
  CRIS: Better handling of pinmux settings
  CRIS: New DMA defines for ARTPEC-3
  CRIS: __do_strncpy_from_user: Don't read the byte beyond the nil
  CRIS: Pagetable for ARTPEC-3
  CRIS: Machine dependent memmap.h
  CRIS: Check if pointer is set before using it
  CRIS: Machine dependent dma.h
  CRIS: Define __read_mostly for CRISv32
  CRIS: Discard .note.gnu.build-id section
  ...

14 years agoMerge branch 'for-linus' of git://android.kernel.org/kernel/tegra
Linus Torvalds [Sun, 8 Aug 2010 17:05:57 +0000 (10:05 -0700)]
Merge branch 'for-linus' of git://android./kernel/tegra

* 'for-linus' of git://android.kernel.org/kernel/tegra:
  [ARM] tegra: add MAINTAINERS entry
  [ARM] tegra: harmony: Add harmony board file
  [ARM] tegra: add pinmux support
  [ARM] tegra: add GPIO support
  [ARM] tegra: Add timer support
  [ARM] tegra: SMP support
  [ARM] tegra: Add clock support
  [ARM] tegra: Add IRQ support
  [ARM] tegra: initial tegra support

14 years agoMerge branch 'for-linus' of git://github.com/schandinat/linux-2.6
Linus Torvalds [Sun, 8 Aug 2010 17:04:17 +0000 (10:04 -0700)]
Merge branch 'for-linus' of git://github.com/schandinat/linux-2.6

* 'for-linus' of git://github.com/schandinat/linux-2.6:
  drivers/video/via/via-gpio.c: fix warning
  viafb: Depends on X86
  fbdev: section cleanup in viafb driver
  viafb: fix accel_flags check_var bug
  viafb: probe cleanups
  viafb: remove ioctls which break the framebuffer interface
  viafb: update fix before calculating depth
  viafb: PLL value cleanup
  viafb: simplify lcd size "detection"
  viafb: fix PCI table
  viafb: add lcd scaling support for some IGPs
  viafb: improve lcd code readability
  viafb: remove duplicated scaling code
  MAINTAINERS: update viafb entry

14 years agoMerge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linux
Linus Torvalds [Sun, 8 Aug 2010 17:02:59 +0000 (10:02 -0700)]
Merge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linux

* 'for-linus' of git://gitorious.org/linux-omap-dss2/linux: (64 commits)
  OMAP: DSS2: OMAPFB: add support for FBIO_WAITFORVSYNC
  OMAP: DSS2: Replace strncmp() with sysfs_streq() in overlay_manager_store()
  OMAP: DSS2: Fix error path in omap_dsi_update()
  OMAP: DSS2: TDO35S: fix video signaling
  OMAP: DSS2: OMAPFB: Fix invalid bpp for PAL and NTSC modes
  OMAP: DSS2: OMAPFB: Fix probe error path
  OMAP3EVM: Replace vdvi regulator supply with vdds_dsi
  OMAP: DSS2: Remove extra return statement
  OMAP: DSS2: adjust YUV overlay width to be even
  OMAP: DSS2: OMAPFB: Fix sysfs mirror input check
  OMAP: DSS2: OMAPFB: Remove redundant color register range check
  OMAP: DSS2: OMAPFB: Remove redundant rotate range check
  OMAP: DSS2: OMAPFB: Check fb2display() return value
  OMAP: DSS2: Taal: Optimize enable_te, rotate, mirror when value unchanged
  OMAP: DSS2: DSI: detect unsupported update requests
  OMAP: DSS2: DSI: increase FIFO low threshold
  OMAP: DSS2: DSI: Add error IRQ mask for DSI complexIO
  OMAP: DSS2: DSI: Remove BTA after set_max_rx_packet_size
  OMAP: DSS2: change manual update scaling setup
  OMAP: DSS2: DSI: use BTA to end the frame transfer
  ...