firefly-linux-kernel-4.4.55.git
10 years ago[media] omap3isp: Modify clocks registration to avoid circular references
Sylwester Nawrocki [Wed, 4 Dec 2013 17:12:03 +0000 (14:12 -0300)]
[media] omap3isp: Modify clocks registration to avoid circular references

The clock core code is going to be modified so clk_get() takes
reference on the clock provider module. Until the potential circular
reference issue is properly addressed, we pass NULL as the first
argument to clk_register(), in order to disallow sub-devices taking
a reference on the ISP module back trough clk_get(). This should
prevent locking the modules in memory.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] s5p-jpeg: Synchronize cached controls with V4L2 core
Jacek Anaszewski [Mon, 25 Nov 2013 09:58:15 +0000 (06:58 -0300)]
[media] s5p-jpeg: Synchronize cached controls with V4L2 core

This patch adds proper initialization of the in-driver
cached state of JPEG controls with V4L2 core.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] s5p-jpeg: Fix lack of spin_lock protection
Jacek Anaszewski [Mon, 25 Nov 2013 09:58:14 +0000 (06:58 -0300)]
[media] s5p-jpeg: Fix lack of spin_lock protection

s5p_jpeg_device_run and s5p_jpeg_runtime_resume callbacks should
have spin_lock protection as they alter device registers.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] s5p-jpeg: Fix clock resource management
Jacek Anaszewski [Mon, 25 Nov 2013 09:58:13 +0000 (06:58 -0300)]
[media] s5p-jpeg: Fix clock resource management

Standard suspend/resume path is called after runtime resume
of the given device, so suspend/resume callbacks must do all
clock management done also by runtime pm to allow for proper
power domain shutdown. Moreover, JPEG clock is enabled from
probe function but is is not necessary. This patch also moves
control of jpeg clock to runtime_pm callbacks.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] s5p-jpeg: Rename functions specific to the S5PC210 SoC accordingly
Jacek Anaszewski [Mon, 25 Nov 2013 09:58:12 +0000 (06:58 -0300)]
[media] s5p-jpeg: Rename functions specific to the S5PC210 SoC accordingly

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] s5p-jpeg: Remove superfluous call to the jpeg_bound_align_image function
Jacek Anaszewski [Mon, 25 Nov 2013 09:58:11 +0000 (06:58 -0300)]
[media] s5p-jpeg: Remove superfluous call to the jpeg_bound_align_image function

Aligning capture queue image dimensions while enqueuing output
queue doesn't make a sense as the S_FMT ioctl might have not
been called for the capture queue until that moment, whereas
it is required to know capture format as the type of alignment
heavily depends on it.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] s5p-jpeg: Fix erroneous condition while validating bytesperline value
Jacek Anaszewski [Mon, 25 Nov 2013 09:58:10 +0000 (06:58 -0300)]
[media] s5p-jpeg: Fix erroneous condition while validating bytesperline value

The aim of the condition is ensuring that the bytesperline
value set by the user space application is proper for the
given format and adjusting it if isn't. As the depth value
of the format description entry is expressed in bits then
the bytesperline value needs to be divided, not multiplied,
by that value to get the number of bytes required to store
single line of image samples.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] s5p-jpeg: Fix output YUV 4:2:0 fourcc for decoder
Jacek Anaszewski [Mon, 25 Nov 2013 09:58:09 +0000 (06:58 -0300)]
[media] s5p-jpeg: Fix output YUV 4:2:0 fourcc for decoder

Output samples during decoding phase for the YUV 4:2:0 format
are arranged in the manner compatible with 2-planar NV12,
not 3-planar YUV420 fourcc.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] s5p-jpeg: Reorder quantization tables
Jacek Anaszewski [Mon, 25 Nov 2013 09:58:08 +0000 (06:58 -0300)]
[media] s5p-jpeg: Reorder quantization tables

Reorder quantization tables so that their elements
are arranged in the manner reflecting compression
quality level that is in accordance with V4L2 documentation,
i.e. the larger value of the V4L2_CID_JPEG_COMPRESSION_QUALITY
control the better image quality, and thus lower compression
quality. The modification allows also to get rid of
reverse logic in the s_ctrl callback while assigning
user space value to the ctx->compr_quality variable.

Signed-off-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] s5p-jpeg: Add initial device tree support for S5PV210/Exynos4210 SoCs
Sylwester Nawrocki [Sun, 18 Aug 2013 19:14:27 +0000 (16:14 -0300)]
[media] s5p-jpeg: Add initial device tree support for S5PV210/Exynos4210 SoCs

This patch enables the JPEG codec on S5PV210 and Exynos4210 SoCs. There are
some differences in newer versions of the JPEG codec IP on SoCs like Exynos4x12
and Exynos5 series and support for them will be added in subsequent patches.

Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Acked-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] s5p-jpeg: Fix encoder and decoder video dev names
Seung-Woo Kim [Thu, 10 Oct 2013 07:45:56 +0000 (04:45 -0300)]
[media] s5p-jpeg: Fix encoder and decoder video dev names

It is hard to distinguish between decoder and encoder video device
because their names are same. So this patch fixes the names.

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years agoMerge branch 'upstream-fixes' into patchwork
Mauro Carvalho Chehab [Fri, 13 Dec 2013 07:04:00 +0000 (05:04 -0200)]
Merge branch 'upstream-fixes' into patchwork

Merge the media fixes merged upstream for v3.13-rc4

* upstream-fixes: (30 commits)
  [media] videobuf2-dma-sg: fix possible memory leak
  [media] vb2: regression fix: always set length field.
  [media] mt9p031: Include linux/of.h header
  [media] rtl2830: add parent for I2C adapter
  [media] media: marvell-ccic: use devm to release clk
  [media] ths7303: Declare as static a private function
  [media] em28xx-video: Swap release order to avoid lock nesting
  [media] usbtv: Add support for PAL video source
  [media] media_tree: Fix spelling errors
  [media] videobuf2: Add support for file access mode flags for DMABUF exporting
  [media] radio-shark2: Mark shark_resume_leds() inline to kill compiler warning
  [media] radio-shark: Mark shark_resume_leds() inline to kill compiler warning
  [media] af9035: unlock on error in af9035_i2c_master_xfer()
  [media] af9033: fix broken I2C
  [media] v4l: omap3isp: Don't check for missing get_fmt op on remote subdev
  [media] af9035: fix broken I2C and USB I/O
  [media] wm8775: fix broken audio routing
  [media] marvell-ccic: drop resource free in driver remove
  [media] tef6862/radio-tea5764: actually assign clamp result
  [media] cx231xx: use after free on error path in probe
  ...

10 years ago[media] v4l: vsp1: Add LUT support
Laurent Pinchart [Wed, 10 Jul 2013 15:03:30 +0000 (12:03 -0300)]
[media] v4l: vsp1: Add LUT support

The Look-Up Table looks up values in 8-bit indexed tables separately for
each color component.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: vsp1: Add SRU support
Laurent Pinchart [Wed, 10 Jul 2013 15:03:30 +0000 (12:03 -0300)]
[media] v4l: vsp1: Add SRU support

The Super Resolution Unit performs super resolution processing with
optional upscaling by a factor of two.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: vsp1: Add HST and HSI support
Laurent Pinchart [Wed, 10 Jul 2013 20:30:14 +0000 (17:30 -0300)]
[media] v4l: vsp1: Add HST and HSI support

The Hue Saturation value Transform and Hue Saturation value Inverse
transform entities convert from RGB to HSV and back.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: Add media format codes for AHSV8888 on 32-bit busses
Laurent Pinchart [Wed, 10 Jul 2013 15:05:06 +0000 (12:05 -0300)]
[media] v4l: Add media format codes for AHSV8888 on 32-bit busses

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: vsp1: Add cropping support
Laurent Pinchart [Sat, 24 Aug 2013 23:49:58 +0000 (20:49 -0300)]
[media] v4l: vsp1: Add cropping support

Implement the get and set selection operations on the RPF and WPF
entities. Only the crop targets are currently available.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: vsp1: Supply frames to the DU continuously
Laurent Pinchart [Tue, 15 Oct 2013 21:58:43 +0000 (18:58 -0300)]
[media] v4l: vsp1: Supply frames to the DU continuously

When operating in DU output mode (deep pipeline to the DU through the
LIF), the VSP1 needs to constantly supply frames to the display. To
ensure reuse the last queued buffer instead of returning it to the user.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] mt9v032: Add support for the MT9V034
Laurent Pinchart [Mon, 2 Dec 2013 15:01:03 +0000 (12:01 -0300)]
[media] mt9v032: Add support for the MT9V034

The MT9V034 sensor is very similar to the MT9V032, with a couple of
different registers and parameters.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] mt9v032: Add support for model-specific parameters
Laurent Pinchart [Mon, 2 Dec 2013 14:59:52 +0000 (11:59 -0300)]
[media] mt9v032: Add support for model-specific parameters

To prepare support of the MT9V034, add the necessary infrastructure to
support model-specific parameters.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] mt9v032: Add support for monochrome models
Laurent Pinchart [Wed, 4 Dec 2013 18:31:13 +0000 (15:31 -0300)]
[media] mt9v032: Add support for monochrome models

Identify the model based on the I2C device name and configure formats
accordingly.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] mt9v032: Fix binning configuration
Laurent Pinchart [Mon, 2 Dec 2013 19:39:18 +0000 (16:39 -0300)]
[media] mt9v032: Fix binning configuration

The sensor can scale the image down using binning by 1, 2 or 4 in both
directions. Update size enumeration and ratio and binning factor
computation accordingly.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] mt9v032: Fix pixel array size
Laurent Pinchart [Mon, 2 Dec 2013 14:52:44 +0000 (11:52 -0300)]
[media] mt9v032: Fix pixel array size

The active pixel array size is 753x481 with 4 additional black rows at
the top. Fix the driver accordingly.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] mt9v032: Remove unused macro
Laurent Pinchart [Mon, 2 Dec 2013 20:16:20 +0000 (17:16 -0300)]
[media] mt9v032: Remove unused macro

The EXT_CLK macro is unused, remove it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: resizer: Fix comment regarding bypass mode
Laurent Pinchart [Wed, 13 Nov 2013 22:54:32 +0000 (19:54 -0300)]
[media] v4l: omap4iss: resizer: Fix comment regarding bypass mode

The comment explaining the usage of the bypass bit is wrong, fix it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Cancel streaming when a fatal error occurs
Laurent Pinchart [Tue, 5 Nov 2013 15:32:05 +0000 (12:32 -0300)]
[media] v4l: omap4iss: Cancel streaming when a fatal error occurs

When a fatal error that prevents any further video streaming occurs in a
pipeline, all queued buffers must be marked as erroneous and new buffers
must be prevented from being queued. Implement this behaviour with a new
omap4iss_pipeline_cancel_stream() function that can be used by
submodules to cancel streaming.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: csi2: Replace manual if statement with a subclk field
Laurent Pinchart [Thu, 10 Oct 2013 12:06:27 +0000 (09:06 -0300)]
[media] v4l: omap4iss: csi2: Replace manual if statement with a subclk field

Instead of manually checking whether the CSI2 module is CSI2a or CSI2b
in order to select the right subclock to enable/disable, add a subclk
field to the iss_csi2 structure, initialize it with the corresponding
subclock value and use it at runtime.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Reset the ISS when the pipeline can't be stopped
Laurent Pinchart [Wed, 9 Oct 2013 14:52:45 +0000 (11:52 -0300)]
[media] v4l: omap4iss: Reset the ISS when the pipeline can't be stopped

When a failure to stop a module in the pipeline is detected, the only
way to recover is to reset the ISS. However, as other users can be using
a different pipeline with other modules, the ISS can't be reset
synchronously with the error detection.
Keep track of modules that have failed to stop, and reset the ISS
accordingly when the last user releases the last reference to the ISS.
Refuse to start streaming on a pipeline that contains a crashed module,
as the hardware wouldn't work anyway.
Modify the omap4iss_pipeline_set_stream() function to record the new ISS
pipeline state only when no error occurs, except when stopping the
pipeline in which case the pipeline is still marked as stopped.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Enable/disabling the ISP interrupts globally
Laurent Pinchart [Thu, 10 Oct 2013 13:40:02 +0000 (10:40 -0300)]
[media] v4l: omap4iss: Enable/disabling the ISP interrupts globally

ISP interrupts are enabled/disabled when starting/stopping the IPIPEIF
or resizer. This doesn't permit using the two modules in separate
pipelines. Fix it by enabling/disabling the ISP interrupts at the same
time as the ISS interrupts, in the ISS device get/put operations.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Propagate stop timeouts from submodules to the driver core
Laurent Pinchart [Wed, 9 Oct 2013 14:52:45 +0000 (11:52 -0300)]
[media] v4l: omap4iss: Propagate stop timeouts from submodules to the driver core

Return an error from the s_stream handlers when stopping the stream
failed instead of just logging the error and ignoring it. While we're
at it, move the logging code from submodules to the driver code.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Add enum_fmt_vid_cap ioctl support
Laurent Pinchart [Fri, 12 Jul 2013 14:25:36 +0000 (11:25 -0300)]
[media] v4l: omap4iss: Add enum_fmt_vid_cap ioctl support

List the pixel formats compatible with the active format currently
configured on the connected pad.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Make __iss_video_get_format() return a v4l2_mbus_framefmt
Laurent Pinchart [Mon, 9 Sep 2013 11:20:16 +0000 (08:20 -0300)]
[media] v4l: omap4iss: Make __iss_video_get_format() return a v4l2_mbus_framefmt

The function will be used by a caller that needs the media bus format
instead of the pixel format currently returned. Move the media bus
format to pixel format conversion to the existing caller.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Add description field to iss_format_info structure
Laurent Pinchart [Mon, 9 Sep 2013 11:19:21 +0000 (08:19 -0300)]
[media] v4l: omap4iss: Add description field to iss_format_info structure

The field stores the format description in a human-readable form.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Convert hexadecimal constants to lower case
Laurent Pinchart [Wed, 4 Sep 2013 15:32:12 +0000 (12:32 -0300)]
[media] v4l: omap4iss: Convert hexadecimal constants to lower case

The Linux kernel recommends lower case for hexadecimal constants.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: resizer: Stop the whole resizer to avoid FIFO overflows
Laurent Pinchart [Wed, 4 Sep 2013 12:48:20 +0000 (09:48 -0300)]
[media] v4l: omap4iss: resizer: Stop the whole resizer to avoid FIFO overflows

When stopping the resizer due to a buffer underrun, disabling RZA only
produces input FIFO overflows, most probably when the next frame is
received. Disable the whole resizer to work around the problem.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: csi: Create and use register access functions
Laurent Pinchart [Sat, 31 Aug 2013 01:23:17 +0000 (22:23 -0300)]
[media] v4l: omap4iss: csi: Create and use register access functions

Replace the direct readl/writel calls with helper functions.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Create and use register access functions
Laurent Pinchart [Sat, 31 Aug 2013 01:23:17 +0000 (22:23 -0300)]
[media] v4l: omap4iss: Create and use register access functions

Replace the direct readl/writel calls with helper functions that take an
ISS pointer and compute the register memory address. Also add bit clear,
set and update helpers.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: csi2: Enable automatic ULP mode transition
Laurent Pinchart [Thu, 29 Aug 2013 11:36:22 +0000 (08:36 -0300)]
[media] v4l: omap4iss: csi2: Enable automatic ULP mode transition

Automatically switch between ULP and ON states based on ULPM signal from
complex I/O.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: ipipeif: Shift input data according to the input format
Laurent Pinchart [Fri, 30 Aug 2013 22:23:31 +0000 (19:23 -0300)]
[media] v4l: omap4iss: ipipeif: Shift input data according to the input format

Input samples must be left-aligned on the ISIF 16-bit data bus.
Configure the 16-to-16-bit selector to shift data according to the input
format.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: isif: Ignore VD0 interrupts when no buffer is available
Laurent Pinchart [Thu, 29 Aug 2013 10:40:37 +0000 (07:40 -0300)]
[media] v4l: omap4iss: isif: Ignore VD0 interrupts when no buffer is available

The ISIF generates VD0 interrupts even when writes are disabled.
Disabling the ISIF when no buffer is available is thus not be enough, we
need to handle the situation explicitly.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Fix operators precedence in ternary operators
Laurent Pinchart [Wed, 28 Aug 2013 16:40:57 +0000 (13:40 -0300)]
[media] v4l: omap4iss: Fix operators precedence in ternary operators

The ternary operator ? : has a low precedence. Use parenthesis where
needed.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Don't make IRQ debugging functions inline
Laurent Pinchart [Wed, 28 Aug 2013 15:51:03 +0000 (12:51 -0300)]
[media] v4l: omap4iss: Don't make IRQ debugging functions inline

Let the compiler decide.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Enhance IRQ debugging
Laurent Pinchart [Wed, 28 Aug 2013 15:48:36 +0000 (12:48 -0300)]
[media] v4l: omap4iss: Enhance IRQ debugging

Add a pretty print function for ISP IRQs and remove the _INT suffix from
interrupt names to enhance readability.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: isif: Define more VDINT registers
Laurent Pinchart [Wed, 28 Aug 2013 15:03:50 +0000 (12:03 -0300)]
[media] v4l: omap4iss: isif: Define more VDINT registers

Use a macro to get the VDINT indexed registers.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Define more ISS and ISP IRQ register bits
Laurent Pinchart [Wed, 28 Aug 2013 15:03:50 +0000 (12:03 -0300)]
[media] v4l: omap4iss: Define more ISS and ISP IRQ register bits

Add more register definitions at iss_regs.h and improve some register
names.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Remove double semicolon at end of line
Laurent Pinchart [Wed, 4 Dec 2013 00:29:06 +0000 (21:29 -0300)]
[media] v4l: omap4iss: Remove double semicolon at end of line

Pure CodingStyle fixes.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Restrict line lengths to 80 characters where possible
Laurent Pinchart [Wed, 4 Dec 2013 00:28:37 +0000 (21:28 -0300)]
[media] v4l: omap4iss: Restrict line lengths to 80 characters where possible

Pure CodingStyle fixes.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Don't split log strings on multiple lines
Laurent Pinchart [Wed, 4 Dec 2013 00:26:37 +0000 (21:26 -0300)]
[media] v4l: omap4iss: Don't split log strings on multiple lines

Non-split strings help grepping for messages.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: omap4iss: Replace printk by dev_err
Laurent Pinchart [Wed, 4 Dec 2013 00:25:13 +0000 (21:25 -0300)]
[media] v4l: omap4iss: Replace printk by dev_err

dev_err is preferred over printk(KERN_ERR) when a device pointer is
available.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] doc: no singing
Kees Cook [Thu, 5 Dec 2013 18:38:19 +0000 (15:38 -0300)]
[media] doc: no singing

Stop that, stop that! You're not going to do a song while I'm here.

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: ti-vpe: make sure VPDMA line stride constraints are met
Archit Taneja [Tue, 3 Dec 2013 11:51:13 +0000 (08:51 -0300)]
[media] v4l: ti-vpe: make sure VPDMA line stride constraints are met

When VPDMA fetches or writes to an image buffer, the line stride must be a
multiple of 16 bytes. If it isn't, VPDMA HW will write/fetch until the next
16 byte boundry. This causes VPE to work incorrectly for source or destination
widths which don't satisfy the above alignment requirement.
In order to prevent this, we now make sure that when we set pix format for the
input and output buffers, the VPE source and destination image line strides are
16 byte aligned. Also, the motion vector buffers for the de-interlacer are
allocated in such a way that it ensures the same alignment.

Signed-off-by: Archit Taneja <archit@ti.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: ti-vpe: Fix the data_type value for UYVY VPDMA format
Archit Taneja [Tue, 3 Dec 2013 11:51:12 +0000 (08:51 -0300)]
[media] v4l: ti-vpe: Fix the data_type value for UYVY VPDMA format

The data_type value to be programmed in the data descriptors to fetch/write a
UYVY buffer was not mentioned correctly in the older DRA7x documentation. This
caused VPE to fail with UYVY color formats.
Update the data_type value to fix functionality when UYVY format is used.

Signed-off-by: Archit Taneja <archit@ti.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: pci: remove DEFINE_PCI_DEVICE_TABLE macro
Jingoo Han [Mon, 2 Dec 2013 23:15:04 +0000 (20:15 -0300)]
[media] media: pci: remove DEFINE_PCI_DEVICE_TABLE macro

Don't use DEFINE_PCI_DEVICE_TABLE macro, because this macro
is not preferred.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] em28xx: add support for the SpeedLink Vicious And Devine Laplace webcams
Frank Schaefer [Sun, 1 Dec 2013 21:06:57 +0000 (18:06 -0300)]
[media] em28xx: add support for the SpeedLink Vicious And Devine Laplace webcams

The SpeedLink Vicious And Devine Laplace webcam is using an EM2765 bridge and
an OV2640 sensor. It has a built-in microphone (USB standard device class)
and provides 3 buttons (snapshot, illumination, mute) and 2 LEDs (capturing/mute
and illumination/flash). It is also equipped with an eeprom.
The device is available in two colors: white (1ae7:9003) and black (1ae7:9004).
For further details see http://linuxtv.org/wiki/index.php/VAD_Laplace.
Please note the following limitations that need to be addressed later:
- resolution limited to 640x480 (sensor supports 1600x1200)
- picture quality needs to be improved
- AV-mute button doesn't work yet

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] em28xx: add support for illumination button and LED
Frank Schaefer [Sun, 1 Dec 2013 21:06:56 +0000 (18:06 -0300)]
[media] em28xx: add support for illumination button and LED

The SpeedLink VAD Laplace webcam is equipped with an illumination button and
an illumination LED. When the button is pressed, the driver must toggle the
LED state via the corresponding GPO port.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] em28xx: prepare for supporting multiple LEDs
Frank Schaefer [Sun, 1 Dec 2013 21:06:55 +0000 (18:06 -0300)]
[media] em28xx: prepare for supporting multiple LEDs

Introduce a LED role and store all LEDs in an array.
Also provide a helper function to retrieve a specific LED.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] em28xx: add debouncing mechanism for GPI-connected buttons
Frank Schaefer [Sun, 1 Dec 2013 21:06:53 +0000 (18:06 -0300)]
[media] em28xx: add debouncing mechanism for GPI-connected buttons

So far, the driver only supports a snapshot button which is assigned to
register 0x0c bit 5. This special port has a built-in debouncing mechanism.
For buttons connected to ordinary GPI ports, this patch implements a software
debouncing mechanism.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] em28xx: extend the support for device buttons
Frank Schaefer [Sun, 1 Dec 2013 21:06:52 +0000 (18:06 -0300)]
[media] em28xx: extend the support for device buttons

The current code supports only a single snapshot button assigned to
register 0x0c bit 5. But devices may be equipped with multiple buttons
with different functionalities and they can also be assigned to the
various GPI-ports.
Extend the em28xx-input code to handle multiple buttons assigned to different
GPI-ports / register addresses and bits.
Also make easier to extend the code with further button types.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] em28xx: add support for GPO controlled analog capturing LEDs
Frank Schaefer [Sun, 1 Dec 2013 21:06:51 +0000 (18:06 -0300)]
[media] em28xx: add support for GPO controlled analog capturing LEDs

Some devices are equipped with a capturing status LED that needs to be
switched on/off explicitly via a GPO port.

Signed-off-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: vs6624: Fix warning due to unused function
Laurent Pinchart [Fri, 29 Nov 2013 23:01:34 +0000 (20:01 -0300)]
[media] v4l: vs6624: Fix warning due to unused function

vs6624_read() is only called in the conditionally-compiled
vs6624_g_register() function. Make the former conditionally-compiled as
well to silence build warnings.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] staging: as102: Remove ENTER/LEAVE debugging macros
Mauro Dreissig [Tue, 26 Nov 2013 14:15:21 +0000 (11:15 -0300)]
[media] staging: as102: Remove ENTER/LEAVE debugging macros

Too much noise, also does not cover every possible code paths.

Signed-off-by: Mauro Dreissig <mukadr@gmail.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] staging: as102: Declare local variables as static
Mauro Dreissig [Tue, 26 Nov 2013 14:15:20 +0000 (11:15 -0300)]
[media] staging: as102: Declare local variables as static

As pointed out by sparse:
drivers/staging/media/as102/as102_fw.c:29:6: warning: symbol 'as102_st_fw1' was not declared. Should it be static?
drivers/staging/media/as102/as102_fw.c:30:6: warning: symbol 'as102_st_fw2' was not declared. Should it be static?
drivers/staging/media/as102/as102_fw.c:31:6: warning: symbol 'as102_dt_fw1' was not declared. Should it be static?
drivers/staging/media/as102/as102_fw.c:32:6: warning: symbol 'as102_dt_fw2' was not declared. Should it be static?
drivers/staging/media/as102/as102_usb_drv.c:194:25: warning: symbol 'as102_priv_ops' was not declared. Should it be static?
Also use the const qualifier on the firmware name strings.

Signed-off-by: Mauro Dreissig <mukadr@gmail.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l2-dev: Add tracepoints for QBUF and DQBUF
Wade Farnsworth [Fri, 22 Nov 2013 19:48:28 +0000 (16:48 -0300)]
[media] v4l2-dev: Add tracepoints for QBUF and DQBUF

Add tracepoints to the QBUF and DQBUF ioctls to enable rudimentary
performance measurements using standard kernel tracers.

[m.chehab@samsung.com: CodingStyle fixes (whitespacing)]
Signed-off-by: Wade Farnsworth <wade_farnsworth@mentor.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] dw2102: some missing unlocks on error
Dan Carpenter [Fri, 22 Nov 2013 07:56:33 +0000 (04:56 -0300)]
[media] dw2102: some missing unlocks on error

We recently introduced some new error paths but the unlocks are missing.
Fixes: 0065a79a8698 ('[media] dw2102: Don't use dynamic static allocation')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] cxusb: unlock on error in cxusb_i2c_xfer()
Dan Carpenter [Fri, 22 Nov 2013 07:55:43 +0000 (04:55 -0300)]
[media] cxusb: unlock on error in cxusb_i2c_xfer()

We recently introduced some new error paths which are missing their
unlocks.
Fixes: 64f7ef8afbf8 ('[media] cxusb: Don't use dynamic static allocation')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] cx18: check for allocation failure in cx18_read_eeprom()
Dan Carpenter [Fri, 22 Nov 2013 07:51:47 +0000 (04:51 -0300)]
[media] cx18: check for allocation failure in cx18_read_eeprom()

It upsets static checkers when we don't check for allocation failure.  I
moved the memset() of "tv" earlier so we don't use uninitialized data on
error.
Fixes: 1d212cf0c2d8 ('[media] cx18: struct i2c_client is too big for stack')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] mceusb: Add Hauppauge WinTV-HVR-930C HD
Matthias Schwarzott [Thu, 21 Nov 2013 20:26:42 +0000 (17:26 -0300)]
[media] mceusb: Add Hauppauge WinTV-HVR-930C HD

Add usb id of Hauppauge WinTV-HVR-930C HD to mceusb RC driver.
This device has no IR transmitter (according to eeprom content decoded
by tveeprom).
Set the rc mapping to Hauppauge, every key of the deliviered remote
control works correctly.

[m.chehab@samsung.com: fix merge conflicts and unmangled whitespace]
Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] cx88: use correct pci drvdata type in cx88_audio_finidev()
Wei Yongjun [Thu, 21 Nov 2013 03:38:44 +0000 (00:38 -0300)]
[media] cx88: use correct pci drvdata type in cx88_audio_finidev()

We had set the pci drvdata in cx88_audio_initdev() as a type of
struct snd_card, so cx88_audio_finidev() should used it as the
same type too.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] dw2102: Use RC Core instead of the legacy RC (second edition)
Evgeny Plehov [Fri, 15 Nov 2013 19:43:33 +0000 (16:43 -0300)]
[media] dw2102: Use RC Core instead of the legacy RC (second edition)

Use RC Core instead of the legacy RC.
DVBWorld, TBS, TeVii, Prof hardware decode only NEC remotes (one byte code).
Geniatech hardware decode only RC5 (two bytes).
+ New keymap for Geniatech HDStar (SU3000).

Signed-off-by: Evgeny Plehov <EvgenyPlehov@ukr.net>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] dw2102: Geniatech T220 support
Evgeny Plehov [Wed, 13 Nov 2013 23:53:59 +0000 (20:53 -0300)]
[media] dw2102: Geniatech T220 support

Support for Geniatech T220 DVB-T/T2/C USB stick.

Signed-off-by: Evgeny Plehov <EvgenyPlehov@ukr.net>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: i2c: lm3560: use correct clientdata in lm3560_remove()
Wei Yongjun [Sat, 9 Nov 2013 00:24:18 +0000 (21:24 -0300)]
[media] media: i2c: lm3560: use correct clientdata in lm3560_remove()

We had set the i2c clientdata to &flash->subdev_led[LM3560_LED1]
after call lm3560_subdev_init(flash, LM3560_LED1, "lm3560-led1"),
but the container_of() in lm3560_remove() return the wrong pointer
to flash.(should be container_of(subdev, struct lm3560_flash,
subdev_led[LM3560_LED_MAX-1])
This patch fix to set i2c clientdata to flash so we can get flash
from clientdata directly.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: i2c: lm3560: fix missing unlock on error in lm3560_set_ctrl()
Wei Yongjun [Thu, 7 Nov 2013 12:44:42 +0000 (09:44 -0300)]
[media] media: i2c: lm3560: fix missing unlock on error in lm3560_set_ctrl()

Add the missing unlock before return from function lm3560_set_ctrl()
in the error handling case.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] af9035: add [0413:6a05] Leadtek WinFast DTV Dongle Dual
Antti Palosaari [Wed, 6 Nov 2013 19:25:06 +0000 (16:25 -0300)]
[media] af9035: add [0413:6a05] Leadtek WinFast DTV Dongle Dual

It is IT9135 dual design.
Thanks to Michael Piko for reporting that!

Reported-by: Michael Piko <michael@piko.com.au>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: sh_vou: Enable driver compilation with COMPILE_TEST
Laurent Pinchart [Wed, 27 Nov 2013 01:18:28 +0000 (22:18 -0300)]
[media] v4l: sh_vou: Enable driver compilation with COMPILE_TEST

This helps increasing build testing coverage.

Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] az6007: support Technisat Cablestar Combo HDCI (minus remote)
Roland Scheidegger [Sat, 2 Nov 2013 19:49:32 +0000 (16:49 -0300)]
[media] az6007: support Technisat Cablestar Combo HDCI (minus remote)

This is similar to the Terratec H7. It works with the same az6007 firmware as
the former, however the drx-k firmware of the H7 will NOT work. Hence use
a different firmware name. The firmware does not need to exist as the one in
the eeprom is just fine as long as the h7 one doesn't get loaded, but maybe
some day someone wants to load it (the one from the h5 would work too).
Also since the config entry is now different anyway disable support for rc.
AFAIK the Technisat remote (TS35) is RC5 and the code (which a code comment
claims doesn't work anyway) only would handle NEC hence it's pointless creating
a device and polling it if we already know it can't work.
CI is untested.

Originally based on idea found on
http://www.linuxtv.org/wiki/index.php/TechniSat_CableStar_Combo_HD_CI claiming
only id needs to be added (but failed to mention it only worked because the
driver couldn't find the h7 drx-k firmware...).

Signed-off-by: Roland Scheidegger <rscheidegger_lists@hispeed.ch>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: ti-vpe: fix return value check in vpe_probe()
Wei Yongjun [Wed, 30 Oct 2013 03:15:13 +0000 (00:15 -0300)]
[media] v4l: ti-vpe: fix return value check in vpe_probe()

In case of error, the function devm_kzalloc() and devm_ioremap()
returns NULL pointer not ERR_PTR(). The IS_ERR() test in the return
value check should be replaced with NULL test.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Reviewed-by: Archit Taneja <archit@ti.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: ti-vpe: fix error return code in vpe_probe()
Wei Yongjun [Wed, 30 Oct 2013 03:10:45 +0000 (00:10 -0300)]
[media] v4l: ti-vpe: fix error return code in vpe_probe()

Fix to return a negative error code from the error handling
case instead of 0, as done elsewhere in this function.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Reviewed-by: Archit Taneja <archit@ti.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] v4l: ti-vpe: use module_platform_driver to simplify the code
Wei Yongjun [Wed, 30 Oct 2013 03:09:44 +0000 (00:09 -0300)]
[media] v4l: ti-vpe: use module_platform_driver to simplify the code

module_platform_driver() makes the code simpler by eliminating
boilerplate code.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] videobuf2-dma-sg: fix possible memory leak
Geyslan G. Bem [Wed, 20 Nov 2013 21:02:52 +0000 (18:02 -0300)]
[media] videobuf2-dma-sg: fix possible memory leak

Fix the return when 'buf->pages' allocation error.

Signed-off-by: Geyslan G. Bem <geyslan@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
10 years ago[media] vb2: regression fix: always set length field.
Hans Verkuil [Wed, 4 Dec 2013 14:14:05 +0000 (15:14 +0100)]
[media] vb2: regression fix: always set length field.

Commit dc77523c5da5513df1bbc74db2a522a94f4cec0e ensured that m.offset is
only set for the MMAP memory mode by calling __setup_offsets only for that
mode.

However, __setup_offsets also initializes the length fields, and that should
be done regardless of the memory mode. Because of that change the v4l2-ctl
test application fails for the USERPTR mode.

This fix creates a __setup_lengths function that sets the length, and
__setup_offsets just sets the offset and no longer touches the length.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
10 years ago[media] radio-bcm2048: fix signal of value
Mauro Carvalho Chehab [Mon, 9 Dec 2013 16:02:51 +0000 (14:02 -0200)]
[media] radio-bcm2048: fix signal of value

As value can be initialized with a value lower than zero, change it
to int, to avoid those warnings:

drivers/staging/media/bcm2048/radio-bcm2048.c: In function 'bcm2048_rds_pi_read':
drivers/staging/media/bcm2048/radio-bcm2048.c:1989:9: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
  struct bcm2048_device *bdev = dev_get_drvdata(dev);  \
         ^
drivers/staging/media/bcm2048/radio-bcm2048.c:2070:1: note: in expansion of macro 'property_read'
 property_read(rds_pi, unsigned int, "%x")
 ^
drivers/staging/media/bcm2048/radio-bcm2048.c: In function 'bcm2048_fm_rds_flags_read':
drivers/staging/media/bcm2048/radio-bcm2048.c:1989:9: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
  struct bcm2048_device *bdev = dev_get_drvdata(dev);  \
         ^
drivers/staging/media/bcm2048/radio-bcm2048.c:2074:1: note: in expansion of macro 'property_read'
 property_read(fm_rds_flags, unsigned int, "%u")
 ^
drivers/staging/media/bcm2048/radio-bcm2048.c: In function 'bcm2048_region_bottom_frequency_read':
drivers/staging/media/bcm2048/radio-bcm2048.c:1989:9: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
  struct bcm2048_device *bdev = dev_get_drvdata(dev);  \
         ^
drivers/staging/media/bcm2048/radio-bcm2048.c:2077:1: note: in expansion of macro 'property_read'
 property_read(region_bottom_frequency, unsigned int, "%u")
 ^
drivers/staging/media/bcm2048/radio-bcm2048.c: In function 'bcm2048_region_top_frequency_read':
drivers/staging/media/bcm2048/radio-bcm2048.c:1989:9: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
  struct bcm2048_device *bdev = dev_get_drvdata(dev);  \
         ^
drivers/staging/media/bcm2048/radio-bcm2048.c:2078:1: note: in expansion of macro 'property_read'
 property_read(region_top_frequency, unsigned int, "%u")

Cc: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] mt9p031: Include linux/of.h header
Sachin Kamat [Fri, 18 Oct 2013 03:07:11 +0000 (00:07 -0300)]
[media] mt9p031: Include linux/of.h header

'of_match_ptr' is defined in linux/of.h. Include it explicitly to
avoid build breakage in the future.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years ago[media] rtl2830: add parent for I2C adapter
Antti Palosaari [Mon, 21 Oct 2013 19:56:36 +0000 (16:56 -0300)]
[media] rtl2830: add parent for I2C adapter

i2c i2c-6: adapter [RTL2830 tuner I2C adapter] registered
BUG: unable to handle kernel NULL pointer dereference at 0000000000000220
IP: [<ffffffffa0002900>] i2c_register_adapter+0x130/0x390 [i2c_core]

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
10 years ago[media] media: marvell-ccic: use devm to release clk
Libin Yang [Tue, 5 Nov 2013 08:29:07 +0000 (05:29 -0300)]
[media] media: marvell-ccic: use devm to release clk

This patch uses devm to release the clks instead of releasing
manually.
And it adds enable/disable mipi_clk when getting its rate.

Signed-off-by: Libin Yang <lbyang@marvell.com>
Acked-by: Jonathan Corbet <corbet@lwn.net>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] ths7303: Declare as static a private function
Ricardo Ribalda [Wed, 6 Nov 2013 14:40:18 +0000 (11:40 -0300)]
[media] ths7303: Declare as static a private function

git grep shows that the function is only called from ths7303.c
Fix this build warning:
CC      drivers/media/i2c/ths7303.o
drivers/media/i2c/ths7303.c:86:5: warning: no previous prototype for  ‘ths7303_setval’ [-Wmissing-prototypes]
   int ths7303_setval(struct v4l2_subdev *sd, enum ths7303_filter_mode mode)
        ^

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] em28xx-video: Swap release order to avoid lock nesting
Ricardo Ribalda [Wed, 6 Nov 2013 08:39:35 +0000 (05:39 -0300)]
[media] em28xx-video: Swap release order to avoid lock nesting

vb2_fop_release might take the video queue mutex lock.
In order to avoid nesting mutexes the private mutex is taken after the
fop_release has finished.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] usbtv: Add support for PAL video source
Georg Kaindl [Mon, 21 Oct 2013 15:01:36 +0000 (12:01 -0300)]
[media] usbtv: Add support for PAL video source

Signed-off-by: Georg Kaindl <gkaindl@mac.com>
Tested-by: Lubomir Rintel <lkundrak@v3.sk>
Tested-by: Marcin Nowak <marcin.nowak@simplusnet.pl>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media_tree: Fix spelling errors
Jonathan McCrohan [Mon, 21 Oct 2013 00:34:01 +0000 (21:34 -0300)]
[media] media_tree: Fix spelling errors

Fix various spelling errors in strings and comments throughout the media
tree. The majority of these were found using Lucas De Marchi's codespell
tool.

[m.chehab@samsung.com: discard hunks with conflicts]

Signed-off-by: Jonathan McCrohan <jmccrohan@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] videobuf2: Add support for file access mode flags for DMABUF exporting
Philipp Zabel [Tue, 21 May 2013 08:11:35 +0000 (05:11 -0300)]
[media] videobuf2: Add support for file access mode flags for DMABUF exporting

Currently it is not possible for userspace to map a DMABUF exported buffer
with write permissions. This patch allows to also pass O_RDONLY/O_RDWR when
exporting the buffer, so that userspace may map it with write permissions.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] radio-shark2: Mark shark_resume_leds() inline to kill compiler warning
Hans de Goede [Sun, 17 Nov 2013 13:48:29 +0000 (10:48 -0300)]
[media] radio-shark2: Mark shark_resume_leds() inline to kill compiler warning

This mirrors the patch to the radio-shark driver by Geert Uytterhoeven.
If SHARK_USE_LEDS=1, but CONFIG_PM=n:
drivers/media/radio/radio-shark2.c:240: warning: ‘shark_resume_leds’ defined but not used
Instead of making the #ifdef logic even more complicated (there are already
two definitions of shark_resume_leds()), mark shark_resume_leds() inline to
kill the compiler warning. shark_resume_leds() is small and it has only one
caller.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] radio-shark: Mark shark_resume_leds() inline to kill compiler warning
Geert Uytterhoeven [Mon, 28 Oct 2013 12:16:05 +0000 (09:16 -0300)]
[media] radio-shark: Mark shark_resume_leds() inline to kill compiler warning

If SHARK_USE_LEDS=1, but CONFIG_PM=n:
drivers/media/radio/radio-shark.c:275: warning: ‘shark_resume_leds’ defined but not used
Instead of making the #ifdef logic even more complicated (there are already
two definitions of shark_resume_leds()), mark shark_resume_leds() inline to
kill the compiler warning. shark_resume_leds() is small and it has only one
caller.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] videobuf2-dma-sg: Support io userptr operations on io memory
Ricardo Ribalda [Tue, 26 Nov 2013 12:58:44 +0000 (09:58 -0300)]
[media] videobuf2-dma-sg: Support io userptr operations on io memory

Memory exported via remap_pfn_range cannot be remapped via
get_user_pages.
Other videobuf2 methods (like the dma-contig) supports io memory.
This patch adds support for this kind of memory.
v2: Comments by Marek Szyprowski
-Use vb2_get_vma and vb2_put_vma

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] videobuf2: Add missing lock held on vb2_fop_release
Ricardo Ribalda [Mon, 25 Nov 2013 08:49:02 +0000 (05:49 -0300)]
[media] videobuf2: Add missing lock held on vb2_fop_release

vb2_fop_release does not hold the lock although it is modifying the
queue->owner field.
This could lead to race conditions on the vb2_perform_io function
when multiple applications are accessing the video device via
read/write API:
[ 308.297741] BUG: unable to handle kernel NULL pointer dereference at
0000000000000260
[ 308.297759] IP: [<ffffffffa07a9fd2>] vb2_perform_fileio+0x372/0x610
[videobuf2_core]
[ 308.297794] PGD 159719067 PUD 158119067 PMD 0
[ 308.297812] Oops: 0000 #1 SMP
[ 308.297826] Modules linked in: qt5023_video videobuf2_dma_sg
qtec_xform videobuf2_vmalloc videobuf2_memops videobuf2_core
qtec_white qtec_mem gpio_xilinx qtec_cmosis qtec_pcie fglrx(PO)
spi_xilinx spi_bitbang qt5023
[ 308.297888] CPU: 1 PID: 2189 Comm: java Tainted: P O 3.11.0-qtec-standard #1
[ 308.297919] Hardware name: QTechnology QT5022/QT5022, BIOS
PM_2.1.0.309 X64 05/23/2013
[ 308.297952] task: ffff8801564e1690 ti: ffff88014dc02000 task.ti:
ffff88014dc02000
[ 308.297962] RIP: 0010:[<ffffffffa07a9fd2>] [<ffffffffa07a9fd2>]
vb2_perform_fileio+0x372/0x610 [videobuf2_core]
[ 308.297985] RSP: 0018:ffff88014dc03df8 EFLAGS: 00010202
[ 308.297995] RAX: 0000000000000000 RBX: ffff880158a23000 RCX: dead000000100100
[ 308.298003] RDX: 0000000000000000 RSI: dead000000200200 RDI: 0000000000000000
[ 308.298012] RBP: ffff88014dc03e58 R08: 0000000000000000 R09: 0000000000000001
[ 308.298020] R10: ffffea00051e8380 R11: ffff88014dc03fd8 R12: ffff880158a23070
[ 308.298029] R13: ffff8801549040b8 R14: 0000000000198000 R15: 0000000001887e60
[ 308.298040] FS: 00007f65130d5700(0000) GS:ffff88015ed00000(0000)
knlGS:0000000000000000
[ 308.298049] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 308.298057] CR2: 0000000000000260 CR3: 0000000159630000 CR4: 00000000000007e0
[ 308.298064] Stack:
[ 308.298071] ffff880156416c00 0000000000198000 0000000000000000
ffff880100000001
[ 308.298087] ffff88014dc03f50 00000000810a79ca 0002000000000001
ffff880154904718
[ 308.298101] ffff880156416c00 0000000000198000 ffff880154904338
ffff88014dc03f50
[ 308.298116] Call Trace:
[ 308.298143] [<ffffffffa07aa3c4>] vb2_read+0x14/0x20 [videobuf2_core]
[ 308.298198] [<ffffffffa07aa494>] vb2_fop_read+0xc4/0x120 [videobuf2_core]
[ 308.298252] [<ffffffff8154ee9e>] v4l2_read+0x7e/0xc0
[ 308.298296] [<ffffffff8116e639>] vfs_read+0xa9/0x160
[ 308.298312] [<ffffffff8116e882>] SyS_read+0x52/0xb0
[ 308.298328] [<ffffffff81784179>] tracesys+0xd0/0xd5
[ 308.298335] Code: e5 d6 ff ff 83 3d be 24 00 00 04 89 c2 4c 8b 45 b0
44 8b 4d b8 0f 8f 20 02 00 00 85 d2 75 32 83 83 78 03 00 00 01 4b 8b
44 c5 48 <8b> 88 60 02 00 00 85 c9 0f 84 b0 00 00 00 8b 40 58 89 c2 41
89
[ 308.298487] RIP [<ffffffffa07a9fd2>] vb2_perform_fileio+0x372/0x610
[videobuf2_core]
[ 308.298507] RSP <ffff88014dc03df8>
[ 308.298514] CR2: 0000000000000260
[ 308.298526] ---[ end trace e8f01717c96d1e41 ]---

Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] videobuf2: Add log for size checking error in __qbuf_dmabuf
Seung-Woo Kim [Fri, 29 Nov 2013 07:50:29 +0000 (04:50 -0300)]
[media] videobuf2: Add log for size checking error in __qbuf_dmabuf

__qbuf_dmabuf checks whether size of provided dmabuf is large
enough, and it returns error without any log. So this patch adds
error log in the case.

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] vb2: Return 0 when streamon and streamoff are already on/off
Ricardo Ribalda [Fri, 8 Nov 2013 10:08:45 +0000 (07:08 -0300)]
[media] vb2: Return 0 when streamon and streamoff are already on/off

According to the doc:
If VIDIOC_STREAMON is called when streaming is already in progress,
or if VIDIOC_STREAMOFF is called when streaming is already stopped,
then the ioctl does nothing and 0 is returned.
The current implementation was returning -EINVAL instead.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] videobuf2-dma-sg: Fix typo on debug message
Ricardo Ribalda [Wed, 6 Nov 2013 18:48:38 +0000 (15:48 -0300)]
[media] videobuf2-dma-sg: Fix typo on debug message

num_pages_from_user and buf->num_pages were swapped.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] media: i2c: lm3560: fix missing unlock on error, fault handling
Daniel Jeong [Fri, 6 Dec 2013 05:43:27 +0000 (02:43 -0300)]
[media] media: i2c: lm3560: fix missing unlock on error, fault handling

Correct reference of reading values. (rval -> reg_val)
Add the missing unlock before return from function lm3560_get_ctrl()
to avoid deadlock.
Thank you Dan Carpenter & Sakari.

Signed-off-by: Daniel Jeong <gshark.jeong@gmail.com>
Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] smiapp: Fix BUG_ON() on an impossible condition
Ricardo Ribalda Delgado [Wed, 6 Nov 2013 14:21:30 +0000 (11:21 -0300)]
[media] smiapp: Fix BUG_ON() on an impossible condition

internal_csi_format_idx and csi_format_idx are unsigned integers,
therefore they can never be nevative.
CC      drivers/media/i2c/smiapp/smiapp-core.o
In file included from include/linux/err.h:4:0,
                 from include/linux/clk.h:15,
                 from drivers/media/i2c/smiapp/smiapp-core.c:29:
drivers/media/i2c/smiapp/smiapp-core.c: In function ‘smiapp_update_mbus_formats’:
include/linux/kernel.h:669:20: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
 #define min(x, y) ({    \
                    ^
include/linux/compiler.h:153:42: note: in definition of macro ‘unlikely’
 # define unlikely(x) __builtin_expect(!!(x), 0)
                                          ^
drivers/media/i2c/smiapp/smiapp-core.c:402:2: note: in expansion of macro ‘BUG_ON’
  BUG_ON(min(internal_csi_format_idx, csi_format_idx) < 0);
  ^
drivers/media/i2c/smiapp/smiapp-core.c:402:9: note: in expansion of macro ‘min’
  BUG_ON(min(internal_csi_format_idx, csi_format_idx) < 0);
         ^

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] bcm2048: add TODO file for this staging driver
Hans Verkuil [Mon, 4 Nov 2013 11:37:34 +0000 (08:37 -0300)]
[media] bcm2048: add TODO file for this staging driver

Describe the tasks to be done for this driver to be promoted to a
non-staging one.

[m.chehab@samsung.com: Add a patch description; add a note about the
 CodingStyle issues and make sure that the README lines are not bigger
 than 80 cols.]
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
10 years ago[media] This adds support for the BCM2048 radio module found in Nokia N900
Hans Verkuil [Mon, 4 Nov 2013 11:34:42 +0000 (08:34 -0300)]
[media] This adds support for the BCM2048 radio module found in Nokia N900

Add suport for Nokia N900 radio. This driver is far from being ready
to be added at the main tree, as it creates its own sysfs interface,
and violates lots of Coding Style rules, doing even evil things like
returning from a function inside a macro.

So, it is being added at staging with the condition that it will be
soon be fixed.

[m.chehab@samsung.com: added a description for the patch]
Signed-off-by: Eero Nurkkala <ext-eero.nurkkala@nokia.com>
Signed-off-by: Nils Faerber <nils.faerber@kernelconcepts.de>
Signed-off-by: Joni Lapilainen <joni.lapilainen@gmail.com>
Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
[hans.verkuil@cisco.com: moved to staging, added slab.h include]

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>