openwrt/staging/blogic.git
8 years ago[media] v4l: vsp1: Disable cropping on WPF sink pad
Laurent Pinchart [Mon, 12 Sep 2016 01:41:06 +0000 (22:41 -0300)]
[media] v4l: vsp1: Disable cropping on WPF sink pad

Cropping on the WPF sink pad restricts the left and top coordinates to
0-255. The same result can be obtained by cropping on the RPF without
any such restriction, this feature isn't useful. Disable it.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l: vsp1: Use DFE instead of FRE for frame end
Kieran Bingham [Tue, 6 Sep 2016 09:55:02 +0000 (06:55 -0300)]
[media] v4l: vsp1: Use DFE instead of FRE for frame end

The DFE and FRE interrupts are both fired at frame completion, as each
display list processes a single frame. This won't be true anymore when
using image partitioning, switch to DFE in preparation.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran+renesas@bingham.xyz>
Acked-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l: vsp1: Repair race between frame end and qbuf handler
Kieran Bingham [Tue, 6 Sep 2016 17:07:09 +0000 (14:07 -0300)]
[media] v4l: vsp1: Repair race between frame end and qbuf handler

The frame-end function releases and completes the buffers on the input
and output entities of the pipe before marking the pipe->state as
'STOPPED'. This introduces a race whereby with the pipe->state still
'RUNNING', a QBUF handler can commence processing a frame before the
frame_end function has completed.

In the event that this happens, a frame queued by QBUF hangs due to the
incorrect pipe->state setting which prevents vsp1_pipeline_run from
issuing a CMD_STRCMD.

By locking the entire function we prevent this from occurring, but we
also change the locking state of the buffer release code. This has been
analysed visually as acceptable, but it must be considered that this now
causes the video->irqlock to be taken under the pipe->irqlock context.

Signed-off-by: Kieran Bingham <kieran+renesas@bingham.xyz>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l: vsp1: Ensure pipeline locking in resume path
Kieran Bingham [Fri, 2 Sep 2016 10:48:27 +0000 (07:48 -0300)]
[media] v4l: vsp1: Ensure pipeline locking in resume path

The vsp1_pipeline_ready() and vsp1_pipeline_run() functions must be
called with the pipeline lock held, fix the resume code path.

Signed-off-by: Kieran Bingham <kieran+renesas@bingham.xyz>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l: vsp1: Protect against race conditions between get and set format
Laurent Pinchart [Sun, 26 Jun 2016 11:09:31 +0000 (08:09 -0300)]
[media] v4l: vsp1: Protect against race conditions between get and set format

The subdev userspace API isn't serialized in the core, serialize access
to formats and selection rectangles in the driver.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l: vsp1: Prevent pipelines from running when not streaming
Laurent Pinchart [Fri, 8 Jul 2016 09:20:51 +0000 (06:20 -0300)]
[media] v4l: vsp1: Prevent pipelines from running when not streaming

Pipelines can only be run if all their video nodes are streaming. Commit
b4dfb9b35a19 ("[media] v4l: vsp1: Stop the pipeline upon the first
STREAMOFF") fixed the pipeline stop sequence, but introduced a race
condition that makes it possible to run a pipeline after stopping the
stream on a video node by queuing a buffer on the other side of the
pipeline.

Fix this by clearing the buffers ready flag when stopping the stream,
which will prevent the QBUF handler from running the pipeline.

Fixes: b4dfb9b35a19 ("[media] v4l: vsp1: Stop the pipeline upon the first STREAMOFF")
Reported-by: Kieran Bingham <kieran@bingham.xyz>
Tested-by: Kieran Bingham <kieran@bingham.xyz>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] gs1662: make checkpatch happy
Mauro Carvalho Chehab [Mon, 19 Sep 2016 17:39:49 +0000 (14:39 -0300)]
[media] gs1662: make checkpatch happy

WARNING: line over 80 characters
+      GS_HEIGHT_MAX, GS_PIXELCLOCK_MIN, GS_PIXELCLOCK_MAX,

WARNING: line over 80 characters
+ if (v4l2_match_dv_timings(timings, &reg_fmt[i].format, 0, false))

WARNING: Block comments use a trailing */ on a separate line
+  * which looks like a video signal activity.*/

WARNING: else is not generally useful after a break or return
+ return gs_write_register(gs->pdev, REG_FORCE_FMT, reg_value);
+ } else {

WARNING: Block comments use a trailing */ on a separate line
+  * which looks like a video signal activity.*/

ERROR: spaces required around that '=' (ctx:VxW)
+ .enum_dv_timings= gs_enum_dv_timings,
                  ^

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media Kconfig: improve the spi integration
Hans Verkuil [Thu, 15 Sep 2016 15:18:14 +0000 (12:18 -0300)]
[media] media Kconfig: improve the spi integration

The SPI driver looked a bit lonely in the config menu, and it didn't
support the autoselect. Shift things around a bit so it looks more logical.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] Add GS1662 driver, a video serializer
Charles-Antoine Couret [Thu, 15 Sep 2016 15:29:51 +0000 (12:29 -0300)]
[media] Add GS1662 driver, a video serializer

You can read datasheet here:
http://www.c-dis.net/media/871/GS1662_Datasheet.pdf

It's a component which supports HD and SD CEA or SDI formats
to SDI output. It's configured through SPI bus.

GS1662 driver is implemented as v4l2 subdev.

Signed-off-by: Charles-Antoine Couret <charles-antoine.couret@nexvision.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] videodev2.h.rst.exceptions: fix warnings
Mauro Carvalho Chehab [Mon, 19 Sep 2016 17:27:25 +0000 (14:27 -0300)]
[media] videodev2.h.rst.exceptions: fix warnings

Changeset ab6343956f9c ("[media] V4L2: Add documentation for SDI timings
and related flags") added documentation for new V4L2 defines, but
it forgot to update videodev2.h.rst.exceptions to point to where
the documentation for those new values will be inside the book,
causing those warnings:

    Documentation/output/videodev2.h.rst:6: WARNING: undefined label: v4l2-dv-bt-std-sdi (if the link has no caption the label must precede a section header)
    Documentation/output/videodev2.h.rst:6: WARNING: undefined label: v4l2-dv-fl-first-field-extra-line (if the link has no caption the label must precede a section header)
    Documentation/output/videodev2.h.rst:6: WARNING: undefined label: v4l2-in-st-no-v-lock (if the link has no caption the label must precede a section header)
    Documentation/output/videodev2.h.rst:6: WARNING: undefined label: v4l2-in-st-no-std-lock (if the link has no caption the label must precede a section header)

Fixes: ab6343956f9c ("[media] V4L2: Add documentation for SDI timings and related flags")
Cc: Charles-Antoine Couret <charles-antoine.couret@nexvision.fr>
Cc: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] V4L2: Add documentation for SDI timings and related flags
Charles-Antoine Couret [Thu, 15 Sep 2016 13:53:55 +0000 (10:53 -0300)]
[media] V4L2: Add documentation for SDI timings and related flags

Describe new needed constants defined by SDI format.

Signed-off-by: Charles-Antoine Couret <charles-antoine.couret@nexvision.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] SDI: add flag for SDI formats and SMPTE 125M definition
Charles-Antoine Couret [Thu, 15 Sep 2016 15:29:50 +0000 (12:29 -0300)]
[media] SDI: add flag for SDI formats and SMPTE 125M definition

Adding others generic flags, which could be used by many
components like GS1662.

Signed-off-by: Charles-Antoine Couret <charles-antoine.couret@nexvision.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years agoMAINTAINERS: update documentation for media subsystem
Mauro Carvalho Chehab [Mon, 12 Sep 2016 15:48:54 +0000 (12:48 -0300)]
MAINTAINERS: update documentation for media subsystem

With ReST conversion, the media subsystem documentation is now
located on different directories.

Update them.

Suggested-by: Joe Perches <joe@perches.com>
Cc: LKML <linux-kernel@vger.kernel.org>
Cc: linux-doc <linux-doc@vger.kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] vivid: fix error return code in vivid_create_instance()
Wei Yongjun [Thu, 15 Sep 2016 03:36:09 +0000 (00:36 -0300)]
[media] vivid: fix error return code in vivid_create_instance()

Fix to return error code -ENOMEM from the memory or workqueue alloc
error handling case instead of 0, as done elsewhere in this function.

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pxa_camera: remove duplicated include from pxa_camera.c
Wei Yongjun [Thu, 15 Sep 2016 02:22:03 +0000 (23:22 -0300)]
[media] pxa_camera: remove duplicated include from pxa_camera.c

Remove duplicated include.

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pxa_camera: fix error return code in pxa_camera_probe()
Wei Yongjun [Thu, 15 Sep 2016 02:21:45 +0000 (23:21 -0300)]
[media] pxa_camera: fix error return code in pxa_camera_probe()

Fix to return error code -ENODEV from dma_request_slave_channel_compat()
error handling case instead of 0, as done elsewhere in this function.

Also fix to release resources in v4l2_clk_register() error handling.

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] tw5864: constify struct video_device template
Andrey Utkin [Mon, 12 Sep 2016 23:02:38 +0000 (20:02 -0300)]
[media] tw5864: constify struct video_device template

tw5864_video_template is used for filling of actual video_device
structures. It is copied by value, and is not used for anything else.

Signed-off-by: Andrey Utkin <andrey.utkin@corp.bluecherry.net>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] tw5864: constify vb2_ops structure
Andrey Utkin [Mon, 12 Sep 2016 23:02:37 +0000 (20:02 -0300)]
[media] tw5864: constify vb2_ops structure

Inspired by "[media] pci: constify vb2_ops structures" patch
from Julia Lawall (dated 9 Sep 2016).

Signed-off-by: Andrey Utkin <andrey.utkin@corp.bluecherry.net>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pulse8-cec: avoid uninitialized data use
Arnd Bergmann [Mon, 12 Sep 2016 08:43:49 +0000 (05:43 -0300)]
[media] pulse8-cec: avoid uninitialized data use

Building with -Wmaybe-uninitialized reveals the use on an uninitialized
variable containing the physical address of the device whenever
firmware before version 2 is used:

drivers/staging/media/pulse8-cec/pulse8-cec.c: In function 'pulse8_connect':
drivers/staging/media/pulse8-cec/pulse8-cec.c:447:2: error: 'pa' may be used uninitialized in this function [-Werror=maybe-uninitialized]

This sets the address to CEC_PHYS_ADDR_INVALID in this case, so we don't
try to write back the uninitialized data to the device.

Fixes: e28a6c8b3fcc ("[media] pulse8-cec: sync configuration with adapter")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] atmel-isc: set the format on the first open
Songjun Wu [Mon, 12 Sep 2016 07:47:24 +0000 (04:47 -0300)]
[media] atmel-isc: set the format on the first open

Set the current format on the first open.

Signed-off-by: Songjun Wu <songjun.wu@microchip.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] cec: fix Kconfig help text
Jean Delvare [Thu, 8 Sep 2016 15:25:16 +0000 (12:25 -0300)]
[media] cec: fix Kconfig help text

MEDIA_CEC is no longer a tristate option, so the user can't actually
choose M. Whether the code is built-in or built as a module is
decided somewhere else.

Fixes: 5bb2399a4fe4 ("[media] cec: fix Kconfig dependency problems")
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pulse8-cec: store logical address mask
Johan Fjeldtvedt [Wed, 7 Sep 2016 11:01:11 +0000 (08:01 -0300)]
[media] pulse8-cec: store logical address mask

In addition to setting the ACK mask, also set the logical address mask
setting in the dongle. This (and not the ACK mask) is persisted for
use in autonomous mode.

The logical address mask to use is deduced from the primary device type
in adap->log_addrs.

Signed-off-by: Johan Fjeldtvedt <jaffe1@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l-drivers/fourcc.rst: fix typo
Hans Verkuil [Wed, 7 Sep 2016 10:48:41 +0000 (07:48 -0300)]
[media] v4l-drivers/fourcc.rst: fix typo

Linux4Linux -> Video4Linux

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] vcodec: mediatek: Add V4L2_CAP_TIMEPERFRAME capability setting
Tiffany Lin [Tue, 6 Sep 2016 05:51:45 +0000 (02:51 -0300)]
[media] vcodec: mediatek: Add V4L2_CAP_TIMEPERFRAME capability setting

This patch setting V4L2_CAP_TIMEPERFRAME capability in
vidioc_venc_s/g_parm functions

Signed-off-by: Tiffany Lin <tiffany.lin@mediatek.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pxa_camera: fix spelling mistake: "dequeud" -> "dequeued"
Colin Ian King [Thu, 18 Aug 2016 15:54:57 +0000 (12:54 -0300)]
[media] pxa_camera: fix spelling mistake: "dequeud" -> "dequeued"

trivial fix to spelling mistake in pr_debug message

Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] add maintainer for stih-cec driver
Benjamin Gaignard [Thu, 15 Sep 2016 07:37:46 +0000 (04:37 -0300)]
[media] add maintainer for stih-cec driver

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Acked-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] add stih-cec driver into DT
Benjamin Gaignard [Thu, 15 Sep 2016 07:37:45 +0000 (04:37 -0300)]
[media] add stih-cec driver into DT

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Acked-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] add stih-cec driver
Benjamin Gaignard [Thu, 15 Sep 2016 07:37:44 +0000 (04:37 -0300)]
[media] add stih-cec driver

This patch implement CEC driver for stih4xx platform.
Driver compliance has been test with cec-ctl and
cec-compliance tools.

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Acked-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] bindings for stih-cec driver
Benjamin Gaignard [Thu, 15 Sep 2016 07:37:43 +0000 (04:37 -0300)]
[media] bindings for stih-cec driver

Add bindings documentation for stih-cec driver.

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@linaro.org>
Acked-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pulse8-cec: fix compiler warning
Hans Verkuil [Sun, 11 Sep 2016 08:57:30 +0000 (05:57 -0300)]
[media] pulse8-cec: fix compiler warning

pulse8-cec.c: In function 'pulse8_connect':
pulse8-cec.c:447:2: warning: 'pa' may be used uninitialized in this function [-Wmaybe-uninitialized]
  cec_s_phys_addr(pulse8->adap, pa, false);
  ^
pulse8-cec.c:609:6: note: 'pa' was declared here
  u16 pa;
      ^

As far as I can tell, this can't actually happen. Still, it is better to just
initialize it.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pxa_camera: merge soc_mediabus.c into pxa_camera.c
Hans Verkuil [Sun, 11 Sep 2016 08:51:54 +0000 (05:51 -0300)]
[media] pxa_camera: merge soc_mediabus.c into pxa_camera.c

Linking soc_mediabus into this driver causes multiple definition linker warnings
if soc_camera is also enabled:

   drivers/media/platform/soc_camera/built-in.o:(___ksymtab+soc_mbus_image_size+0x0): multiple definition of `__ksymtab_soc_mbus_image_size'
   drivers/media/platform/soc_camera/soc_mediabus.o:(___ksymtab+soc_mbus_image_size+0x0): first defined here
>> drivers/media/platform/soc_camera/built-in.o:(___ksymtab+soc_mbus_samples_per_pixel+0x0): multiple definition of `__ksymtab_soc_mbus_samples_per_pixel'
   drivers/media/platform/soc_camera/soc_mediabus.o:(___ksymtab+soc_mbus_samples_per_pixel+0x0): first defined here
   drivers/media/platform/soc_camera/built-in.o: In function `soc_mbus_config_compatible':
   (.text+0x3840): multiple definition of `soc_mbus_config_compatible'
   drivers/media/platform/soc_camera/soc_mediabus.o:(.text+0x134): first defined here

Since we really don't want to have to use any of the soc-camera code this patch
copies the relevant code and data structures from soc_mediabus and renames it to pxa_mbus_*.

The large table of formats has been culled a bit, removing formats that are not supported
by this driver.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l: vsp1: Add R8A7792 VSP1V support
Sergei Shtylyov [Fri, 19 Aug 2016 21:57:59 +0000 (18:57 -0300)]
[media] v4l: vsp1: Add R8A7792 VSP1V support

Add support for the R8A7792 VSP1V cores which are different from the other
gen2 VSP1 cores.

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l: vsp1: Fix tri-planar format support through DRM API
Laurent Pinchart [Thu, 18 Aug 2016 13:16:17 +0000 (10:16 -0300)]
[media] v4l: vsp1: Fix tri-planar format support through DRM API

The vsp1 driver supports tri-planar formats, but the DRM API only passes
two memory addresses. Add a third one.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l: vsp1: Report device model and rev through media device information
Laurent Pinchart [Tue, 12 Jul 2016 07:59:52 +0000 (04:59 -0300)]
[media] v4l: vsp1: Report device model and rev through media device information

Instead of hardcoding the media device model and hardware revision to
"VSP1" and 0 respectively, report the actual hardware device model and
IP version number.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l: rcar-fcp: Extend compatible list to support the FDP
Kieran Bingham [Thu, 9 Jun 2016 17:06:43 +0000 (14:06 -0300)]
[media] v4l: rcar-fcp: Extend compatible list to support the FDP

The FCP must be powered up for the FDP1 to function, even when the FDP1
does not make use of the FCNL features. Extend the compatible list
to allow us to use the power domain and runtime-pm support.

Signed-off-by: Kieran Bingham <kieran+renesas@bingham.xyz>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l: rcar-fcp: Don't force users to check for disabled FCP support
Laurent Pinchart [Wed, 17 Aug 2016 12:57:37 +0000 (09:57 -0300)]
[media] v4l: rcar-fcp: Don't force users to check for disabled FCP support

The rcar_fcp_enable() function immediately returns successfully when the
FCP device pointer is NULL to avoid forcing the users to check the FCP
device manually before every call. However, the stub version of the
function used when the FCP driver is disabled returns -ENOSYS
unconditionally, resulting in a different API contract for the two
versions of the function.

As a user that requires FCP support will fail at probe time when calling
rcar_fcp_get() if the FCP driver is disabled, the stub version of the
rcar_fcp_enable() function will only be called with a NULL FCP device.
We can thus return 0 unconditionally to align the behaviour with the
normal version of the function.

Reported-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l: rcar-fcp: Keep the coding style consistent
Laurent Pinchart [Tue, 9 Aug 2016 15:36:41 +0000 (12:36 -0300)]
[media] v4l: rcar-fcp: Keep the coding style consistent

The Renesas multimedia drivers use ret to store return values, fix the
only exception in the rcar-fcp driver to keep the coding style
consistent.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l: ioctl: Clear the v4l2_pix_format_mplane reserved field
Laurent Pinchart [Tue, 28 Jun 2016 13:20:10 +0000 (10:20 -0300)]
[media] v4l: ioctl: Clear the v4l2_pix_format_mplane reserved field

The S_FMT and TRY_FMT handlers in multiplane mode attempt at clearing
the reserved fields of the v4l2_format structure after the pix_mp
member. However, the reserved fields are inside pix_mp, not after it.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Tested-by: Kieran Bingham <kieran@bingham.xyz>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] dt-bindings: Document Renesas R-Car FCP power-domains usage
Kieran Bingham [Thu, 30 Jun 2016 16:50:29 +0000 (13:50 -0300)]
[media] dt-bindings: Document Renesas R-Car FCP power-domains usage

The power domain must be specified to bring the device out of module
standby. Document this in the bindings provided, so that new additions
are not missed.

Signed-off-by: Kieran Bingham <kieran+renesas@bingham.xyz>
Acked-by: Rob Herring <robh@kernel.org>
Acked-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] dt-bindings: Update Renesas R-Car FCP DT bindings for FCPF
Kieran Bingham [Thu, 30 Jun 2016 16:50:28 +0000 (13:50 -0300)]
[media] dt-bindings: Update Renesas R-Car FCP DT bindings for FCPF

The FCP driver can also support the FCPF variant for FDP1 compatible
processing.

Signed-off-by: Kieran Bingham <kieran+renesas@bingham.xyz>
Acked-by: Rob Herring <robh@kernel.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] ad5820: Use bool for boolean values
Sakari Ailus [Mon, 5 Sep 2016 07:09:42 +0000 (04:09 -0300)]
[media] ad5820: Use bool for boolean values

The driver used integers for what boolean would have been a better fit.
Use boolean instead.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: Move media_device link_notify operation to an ops structure
Laurent Pinchart [Tue, 3 Nov 2015 02:27:51 +0000 (00:27 -0200)]
[media] media: Move media_device link_notify operation to an ops structure

This will allow adding new operations without increasing the
media_device structure size for drivers that don't implement any media
device operation.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] smiapp: Add support for 14 and 16 bits per sample depths
Sakari Ailus [Tue, 6 Sep 2016 10:32:28 +0000 (07:32 -0300)]
[media] smiapp: Add support for 14 and 16 bits per sample depths

SMIA++ supports 14 and 16 bits per pixel formats as well. Add support to
these formats in the driver.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: Add 1X16 16-bit raw bayer media bus code definitions
Sakari Ailus [Mon, 27 Jun 2016 14:15:57 +0000 (11:15 -0300)]
[media] media: Add 1X16 16-bit raw bayer media bus code definitions

The codes will be called:

MEDIA_BUS_FMT_SBGGR16_1X16
MEDIA_BUS_FMT_SGBRG16_1X16
MEDIA_BUS_FMT_SGRBG16_1X16
MEDIA_BUS_FMT_SRGGB16_1X16

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: Add 1X14 14-bit raw bayer media bus code definitions
Jouni Ukkonen [Mon, 25 Apr 2016 12:19:10 +0000 (09:19 -0300)]
[media] media: Add 1X14 14-bit raw bayer media bus code definitions

The codes will be called:

MEDIA_BUS_FMT_SBGGR14_1X14
MEDIA_BUS_FMT_SGBRG14_1X14
MEDIA_BUS_FMT_SGRBG14_1X14
MEDIA_BUS_FMT_SRGGB14_1X14

Signed-off-by: Jouni Ukkonen <jouni.ukkonen@intel.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] doc-rst: 16-bit BGGR is always 16 bits
Sakari Ailus [Thu, 7 Jul 2016 06:10:49 +0000 (03:10 -0300)]
[media] doc-rst: 16-bit BGGR is always 16 bits

The V4L2_PIX_FMT_SBGGR16 format is documented to contain samples of fewer
than 16 bits. However, we do have specific definitions for smaller sample
sizes. Therefore, this note is redundant from the API point of view.

Currently only two drivers, am437x and davinci, use the
V4L2_PIX_FMT_SBGGR16 pixelformat currently. The sampling precision is
understood to be 16 bits in all current cases.

Remove the note on sampling precision.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] doc-rst: Unify documentation of the 8-bit bayer formats
Sakari Ailus [Fri, 5 Aug 2016 10:20:21 +0000 (07:20 -0300)]
[media] doc-rst: Unify documentation of the 8-bit bayer formats

The other raw bayer formats had a single sample depth dependent definition
whereas the 8-bit formats had one page for each. Unify the documentation
of the 8-bit formats.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] doc-rst: Clean up raw bayer pixel format definitions
Sakari Ailus [Mon, 20 Jun 2016 15:53:55 +0000 (12:53 -0300)]
[media] doc-rst: Clean up raw bayer pixel format definitions

- Explicitly state that the most significant n bits are zeroed on 10 and
  12 bpp formats.
- Remove extra comma from the last entry of the format list
- Add a missing colon before a list
- Use figures versus word numerals consistently

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] doc-rst: Fix number of zeroed high order bits in 12-bit raw format defs
Sakari Ailus [Thu, 26 May 2016 11:20:42 +0000 (08:20 -0300)]
[media] doc-rst: Fix number of zeroed high order bits in 12-bit raw format defs

The number of high order bits in samples was documented to be 6 for 12-bit
data. This is clearly wrong, fix it.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] doc-rst: Correct the ordering of LSBs of the 10-bit raw packed formats
Sakari Ailus [Fri, 11 Mar 2016 22:47:36 +0000 (19:47 -0300)]
[media] doc-rst: Correct the ordering of LSBs of the 10-bit raw packed formats

The 10-bit packed raw bayer format documented that the data of the first
pixel of a four-pixel group was found in the first byte and the two
highest bits of the fifth byte. This was not entirely correct. The two
bits in the fifth byte are the two lowest bits. The second pixel occupies
the second byte and third and fourth least significant bits and so on.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Acked-by: Aviv Greenberg <aviv.d.greenberg@intel.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pxa_camera: remove an unused structure pointer
Mauro Carvalho Chehab [Fri, 9 Sep 2016 13:59:57 +0000 (10:59 -0300)]
[media] pxa_camera: remove an unused structure pointer

As reported by smatch:

drivers/media/platform/pxa_camera.c: In function 'pxa_dma_start_channels':
drivers/media/platform/pxa_camera.c:457:21: warning: variable 'active' set but not used [-Wunused-but-set-variable]
  struct pxa_buffer *active;
                     ^~~~~~

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pxa_camera: make soc_mbus_xlate_by_fourcc() static
Mauro Carvalho Chehab [Fri, 9 Sep 2016 13:58:58 +0000 (10:58 -0300)]
[media] pxa_camera: make soc_mbus_xlate_by_fourcc() static

As warned by smatch:

drivers/media/platform/pxa_camera.c:283:39: warning: no previous prototype for 'soc_mbus_xlate_by_fourcc' [-Wmissing-prototypes]
 const struct soc_camera_format_xlate *soc_mbus_xlate_by_fourcc(
                                       ^~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] pxa_camera: allow building it if COMPILE_TEST is set
Hans Verkuil [Tue, 6 Sep 2016 10:37:45 +0000 (07:37 -0300)]
[media] pxa_camera: allow building it if COMPILE_TEST is set

Allow building this driver if COMPILE_TEST is set.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: platform: pxa_camera: fix style
Robert Jarzmik [Tue, 6 Sep 2016 09:04:24 +0000 (06:04 -0300)]
[media] media: platform: pxa_camera: fix style

This is a tiny fix for a switch case which quiets 2 checkpatch harmless
warnings. The generated code is not affected.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: platform: pxa_camera: move pxa_camera out of soc_camera
Robert Jarzmik [Tue, 6 Sep 2016 09:04:23 +0000 (06:04 -0300)]
[media] media: platform: pxa_camera: move pxa_camera out of soc_camera

As the conversion to a v4l2 standalone device is finished, move
pxa_camera one directory up and finish severing any dependency to
soc_camera.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: platform: pxa_camera: change stop_streaming semantics
Robert Jarzmik [Tue, 6 Sep 2016 09:04:22 +0000 (06:04 -0300)]
[media] media: platform: pxa_camera: change stop_streaming semantics

Instead of the legacy behavior where it was required to wait for all
video buffers to be finished by the hardware, use a cancel like strategy
: as soon as the stop_streaming() call is done, abort all DMA transfers,
report the already buffers as failed and return.

This makes stop_streaming() more a "cancel capture" than a "wait for end
of capture" semantic.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: platform: pxa_camera: add debug register access
Robert Jarzmik [Tue, 6 Sep 2016 09:04:21 +0000 (06:04 -0300)]
[media] media: platform: pxa_camera: add debug register access

Add pxa_camera registers access through advanced video debugging.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: platform: pxa_camera: make a standalone v4l2 device
Robert Jarzmik [Tue, 6 Sep 2016 09:04:20 +0000 (06:04 -0300)]
[media] media: platform: pxa_camera: make a standalone v4l2 device

This patch removes the soc_camera API dependency from pxa_camera.
In the current status :
 - all previously captures are working the same on pxa270
 - the s_crop() call was removed, judged not working
   (see what happens soc_camera_s_crop() when get_crop() == NULL)
 - if the pixel clock is provided by then sensor, ie. not MCLK, the dual
   stage change is not handled yet.
   => there is no in-tree user of this, so I'll let it that way

 - the MCLK is not yet finished, it's as in the legacy way,
   ie. activated at video device opening and closed at video device
   closing.
   In a subsequence patch pxa_camera_mclk_ops should be used, and
   platform data MCLK ignored. It will be the sensor's duty to request
   the clock and enable it, which will end in pxa_camera_mclk_ops.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: platform: pxa_camera: remove set_selection
Robert Jarzmik [Tue, 6 Sep 2016 09:04:19 +0000 (06:04 -0300)]
[media] media: platform: pxa_camera: remove set_selection

This is to be seen as a regression as the set_selection (former
set_crop) function is removed. This is a temporary situation in the v4l2
porting, and will have to be added later.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: platform: pxa_camera: add buffer sequencing
Robert Jarzmik [Tue, 6 Sep 2016 09:04:18 +0000 (06:04 -0300)]
[media] media: platform: pxa_camera: add buffer sequencing

Add sequence numbers to completed buffers.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: platform: pxa_camera: make printk consistent
Robert Jarzmik [Tue, 6 Sep 2016 09:04:17 +0000 (06:04 -0300)]
[media] media: platform: pxa_camera: make printk consistent

Make all print consistent by always using :
 - dev_xxx(pcdev_to_dev(pcdev), ....)

This prepares the soc_camera adherence removal by making these call rely
on only pcdev, and not the soc_camera icd structure.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: platform: pxa_camera: introduce sensor_call
Robert Jarzmik [Tue, 6 Sep 2016 09:04:16 +0000 (06:04 -0300)]
[media] media: platform: pxa_camera: introduce sensor_call

Introduce sensor_call(), which will be used for all sensor invocations.
This is a preparation move to v4l2 device conversion, ie. soc_camera
adherence removal.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: platform: pxa_camera: trivial move of functions
Robert Jarzmik [Tue, 6 Sep 2016 09:04:15 +0000 (06:04 -0300)]
[media] media: platform: pxa_camera: trivial move of functions

Move the functions in the file to be regrouped into meaningful blocks :
 1. pxa camera core handling functions, manipulating the herdware
 2. videobuf2 functions, dealing with video buffers
 3. video ioctl (vidioc) related functions
 4. driver probing, removal, suspend and resume

This patch doesn't modify a single line of code.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: platform: pxa_camera: convert to vb2
Robert Jarzmik [Tue, 6 Sep 2016 09:04:14 +0000 (06:04 -0300)]
[media] media: platform: pxa_camera: convert to vb2

Convert pxa_camera from videobuf to videobuf2.

As the soc_camera was already compatible with videobuf2, the port is
quite straightforward.

The special case of this code in which the vb2 to prepare is "too
big" in terms of size for the new capture format, the pxa_camera will
fail.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: mt9m111: move mt9m111 out of soc_camera
Robert Jarzmik [Tue, 6 Sep 2016 09:04:13 +0000 (06:04 -0300)]
[media] media: mt9m111: move mt9m111 out of soc_camera

As the mt9m111 is now working as a standalone v4l2 subdevice sensor,
move it out of soc_camera directory and sever its dependency on
soc_camera.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: mt9m111: use only the SRGB colorspace
Robert Jarzmik [Tue, 6 Sep 2016 09:04:12 +0000 (06:04 -0300)]
[media] media: mt9m111: use only the SRGB colorspace

mt9m111 being a camera sensor, its colorspace should always be SRGB, for
both RGB based formats or YCbCr based ones.

Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media: mt9m111: make a standalone v4l2 subdevice
Robert Jarzmik [Tue, 6 Sep 2016 09:04:11 +0000 (06:04 -0300)]
[media] media: mt9m111: make a standalone v4l2 subdevice

Remove the soc_camera adherence. Mostly the change removes the power
manipulation provided by soc_camera, and instead :
 - powers on the sensor when the s_power control is activated
 - powers on the sensor in initial probe
 - enables and disables the MCLK provided to it in power on/off

This patch also drops support for inverters on synchronisation and clock
lines. It is assumed, if any board ever needs such inverters, support
for them can be added in the future

Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] st-hva: update MAINTAINERS
Jean-Christophe Trotin [Mon, 5 Sep 2016 15:31:29 +0000 (12:31 -0300)]
[media] st-hva: update MAINTAINERS

Add entry for the HVA driver to the MAINTAINERS file.

Signed-off-by: Jean-Christophe Trotin <jean-christophe.trotin@st.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] st-hva: add H.264 video encoding support
Jean-Christophe Trotin [Mon, 5 Sep 2016 14:06:30 +0000 (11:06 -0300)]
[media] st-hva: add H.264 video encoding support

This patch adds the H.264 video encoding capability in the V4L2 HVA
video encoder driver for STMicroelectronics SoC (hva-h264.c).

The main supported features are:
- profile: baseline, main, high, stereo high
- level: up to 4.2
- bitrate mode: CBR, VBR
- entropy mode: CABAC, CAVLC
- video aspect: 1x1 only

Signed-off-by: Yannick Fertre <yannick.fertre@st.com>
Signed-off-by: Jean-Christophe Trotin <jean-christophe.trotin@st.com>
Acked-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] st-hva: multi-format video encoder V4L2 driver
Jean-Christophe Trotin [Mon, 5 Sep 2016 14:06:29 +0000 (11:06 -0300)]
[media] st-hva: multi-format video encoder V4L2 driver

This patch adds V4L2 HVA (Hardware Video Accelerator) video encoder
driver for STMicroelectronics SoC. It uses the V4L2 mem2mem framework.

This patch only contains the core parts of the driver:
- the V4L2 interface with the userland (hva-v4l2.c)
- the hardware services (hva-hw.c)
- the memory management utilities (hva-mem.c)

This patch doesn't include the support of specific codec (e.g. H.264)
video encoding: this support is part of subsequent patches.

Signed-off-by: Yannick Fertre <yannick.fertre@st.com>
Signed-off-by: Jean-Christophe Trotin <jean-christophe.trotin@st.com>
Acked-by: Peter Griffin <peter.griffin@linaro.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l2-subdev.h: fix a typo at a kernel-doc markup
Mauro Carvalho Chehab [Fri, 9 Sep 2016 11:40:15 +0000 (08:40 -0300)]
[media] v4l2-subdev.h: fix a typo at a kernel-doc markup

One struct at the comment was not written well.

Fix it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l2-subdev: fix some references to v4l2_dev
Mauro Carvalho Chehab [Thu, 8 Sep 2016 21:31:17 +0000 (18:31 -0300)]
[media] v4l2-subdev: fix some references to v4l2_dev

There is a warning there, because it was pointing to a different
name. Fix it.

While here, use struct &foo, instead of &struct foo.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l2-flash-led-class.h: document v4l2_flash_ops
Mauro Carvalho Chehab [Thu, 8 Sep 2016 21:23:35 +0000 (18:23 -0300)]
[media] v4l2-flash-led-class.h: document v4l2_flash_ops

Fix this warning:
./include/media/v4l2-flash-led-class.h:103: WARNING: c:type reference target not found: v4l2_flash_ops

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] videobuf2-v4l2: document two helper functions
Mauro Carvalho Chehab [Thu, 8 Sep 2016 21:12:18 +0000 (18:12 -0300)]
[media] videobuf2-v4l2: document two helper functions

Document vb2_ops_wait_prepare() and vb2_ops_wait_finish(),
in order to fix those two warnings:
Documentation/media/kapi/v4l2-dev.rst:166: WARNING: c:func reference target not found: vb2_ops_wait_prepare
Documentation/media/kapi/v4l2-dev.rst:166: WARNING: c:func reference target not found: vb2_ops_wait_finish

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] videobuf2-v4l2.h: improve documentation
Mauro Carvalho Chehab [Thu, 8 Sep 2016 21:01:44 +0000 (18:01 -0300)]
[media] videobuf2-v4l2.h: improve documentation

There are a few issues at the documentation: fields not documented,
bad cross refrences, etc.

Fix them.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] videobuf2-v4l2.h: get kernel-doc tags from C file
Mauro Carvalho Chehab [Thu, 8 Sep 2016 17:22:00 +0000 (14:22 -0300)]
[media] videobuf2-v4l2.h: get kernel-doc tags from C file

There are several functions documented at the C file. Move
them to the header, as this is the one used to build the
media books.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] conf_nitpick.py: ignore C domain data used on vb2
Mauro Carvalho Chehab [Thu, 8 Sep 2016 17:12:29 +0000 (14:12 -0300)]
[media] conf_nitpick.py: ignore C domain data used on vb2

Ignore external C domain structs and functions used by VB2
header.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] videobuf2-core.h: improve documentation
Mauro Carvalho Chehab [Thu, 8 Sep 2016 17:08:34 +0000 (14:08 -0300)]
[media] videobuf2-core.h: improve documentation

There are several small issues with the documentation. Fix them,
in order to avoid producing warnings.

While here, also make checkpatch.pl happy.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] videobuf2-core.h: document enum vb2_memory
Mauro Carvalho Chehab [Thu, 8 Sep 2016 17:08:00 +0000 (14:08 -0300)]
[media] videobuf2-core.h: document enum vb2_memory

This enum was not documented. Document it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] videobuf2-core.h: move function descriptions from c file
Mauro Carvalho Chehab [Thu, 8 Sep 2016 16:34:37 +0000 (13:34 -0300)]
[media] videobuf2-core.h: move function descriptions from c file

There are several functions that were documented at the .c
file. As we only include the headers, we need to move them to
there, in order to have documentation.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] conf_nitpick.py: ignore an opaque struct from v4l2-mem2mem.h
Mauro Carvalho Chehab [Thu, 8 Sep 2016 21:01:36 +0000 (18:01 -0300)]
[media] conf_nitpick.py: ignore an opaque struct from v4l2-mem2mem.h

The v4l2_m2m_dev is opaque: its meaning is only known by
v4l2-mem2mem.c. Ignore it on nitpick mode.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l2-mem2mem.h: make kernel-doc parse v4l2-mem2mem.h again
Mauro Carvalho Chehab [Thu, 8 Sep 2016 20:20:44 +0000 (17:20 -0300)]
[media] v4l2-mem2mem.h: make kernel-doc parse v4l2-mem2mem.h again

The kernel-doc C parser doesn't like opaque structures. So,
document it on another way.

This should get rid of this warning:
./include/media/v4l2-mem2mem.h:62: error: Cannot parse struct or union!

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l2-mem2mem.h: document the public structures
Mauro Carvalho Chehab [Thu, 8 Sep 2016 13:16:36 +0000 (10:16 -0300)]
[media] v4l2-mem2mem.h: document the public structures

Most structures here are not documented. Add a documentation
for them.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l2-mem2mem.h: document function arguments
Mauro Carvalho Chehab [Thu, 8 Sep 2016 13:39:58 +0000 (10:39 -0300)]
[media] v4l2-mem2mem.h: document function arguments

There are lots of troubles with the function arguments on this
file. Fix them.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] v4l2-mem2mem.h: move descriptions from .c file
Mauro Carvalho Chehab [Thu, 8 Sep 2016 13:16:27 +0000 (10:16 -0300)]
[media] v4l2-mem2mem.h: move descriptions from .c file

Several routines are somewhat documented at v4l2-mem2mem.c
file. Move what's there to the header file.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] mc-core.rst: fix a warning about an internal routine
Mauro Carvalho Chehab [Thu, 8 Sep 2016 12:57:24 +0000 (09:57 -0300)]
[media] mc-core.rst: fix a warning about an internal routine

Fix this warning:
Documentation/media/kapi/mc-core.rst:97: WARNING: c:func reference target not found: media_devnode_release

The media_device_release() is a function internal to media-devnode.c,
and not exported elsewhere. So, we can't cross-reference it here.
Make it explicit at the documentation.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] rc-map.h: fix a Sphinx warning
Mauro Carvalho Chehab [Thu, 8 Sep 2016 11:18:04 +0000 (08:18 -0300)]
[media] rc-map.h: fix a Sphinx warning

./include/media/rc-map.h:121: WARNING: Inline emphasis start-string without end-string.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] docs-rst: fix two wrong :name: tags
Mauro Carvalho Chehab [Thu, 8 Sep 2016 11:14:10 +0000 (08:14 -0300)]
[media] docs-rst: fix two wrong :name: tags

There's a typo there, causing 4 warnings:

  Documentation/media/uapi/rc/lirc-read.rst:26: WARNING: c:type reference target not found: name
  Documentation/media/uapi/rc/lirc-read.rst:26: WARNING: c:type reference target not found: lirc
  Documentation/media/uapi/v4l/func-poll.rst:25: WARNING: c:type reference target not found: name
  Documentation/media/uapi/v4l/func-poll.rst:25: WARNING: c:type reference target not found: v4l2

 Fix them.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] media-ioc-g-topology.rst: fix a c domain reference
Mauro Carvalho Chehab [Thu, 8 Sep 2016 10:55:13 +0000 (07:55 -0300)]
[media] media-ioc-g-topology.rst: fix a c domain reference

One reference there is still using :ref:. Fix it, to solve this
warning:
  Documentation/media/uapi/mediactl/media-ioc-g-topology.rst:236: WARNING: undefined label: media-v2-intf-devnode (if the link has no caption the label must precede a section header)

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] dev-sliced-vbi.rst: fix reference for v4l2_mpeg_vbi_ITV0
Mauro Carvalho Chehab [Thu, 8 Sep 2016 10:50:59 +0000 (07:50 -0300)]
[media] dev-sliced-vbi.rst: fix reference for v4l2_mpeg_vbi_ITV0

The struct v4l2_mpeg_vbi_ITV0 is identical to struct v4l2_mpeg_vbi_itv0,
except by its size, and it is documented at the same place at the
book.

Fix cross reference for it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] docs-rst: fix cross-references for videodev2.h
Mauro Carvalho Chehab [Thu, 8 Sep 2016 09:41:26 +0000 (06:41 -0300)]
[media] docs-rst: fix cross-references for videodev2.h

There are several broken references there, due to the conversion to
C domain. Fix them using this shell script and manually adjust what's
broken:

# funcs is a file with the broken functions/references
for i in $(cat funcs|sort|uniq|perl -ne 'print "$1\n" if (m/(\S+)$/)'); do
i=${i//-/_}
echo $i
j=${i//_/-}
for k in $(git grep -l "_$j:" Documentation/); do
sed s,\_$j\:,"c\:type\:\: $i", <$k >a && mv a $k
done
for k in $(git grep -l "$j" Documentation/media/*.exceptions); do
sed s,$j,":c\:type\:\`$i\`", <$k >a && mv a $k
done
for k in $(git grep -l "$j" Documentation/); do
sed "s,:ref:\`$i <$j>\`,:c:type:\`$i\`," <$k >a && mv a $k
sed "s,:ref:\`$j\`,:c:type:\`$i\`," <$k >a && mv a $k
sed -E "s,:ref:\`(.*)<$j>\`,:c:type:\`\1<$i>\`," <$k >a && mv a $k
done
for k in $(git grep -l "<$j>" include/media); do
sed -E "s,:ref:\`(.*)<$j>\`,enum \&$i," <$k >a && mv a $k
done
done

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] hist-v4l2.rst: don't do refs to old structures
Mauro Carvalho Chehab [Thu, 8 Sep 2016 09:30:27 +0000 (06:30 -0300)]
[media] hist-v4l2.rst: don't do refs to old structures

Several structs were renamed or removed during V4L2 development.
Don't try to cross-reference the legacy ones.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] libv4l-introduction.rst: improve crossr-references
Mauro Carvalho Chehab [Thu, 8 Sep 2016 09:21:01 +0000 (06:21 -0300)]
[media] libv4l-introduction.rst: improve crossr-references

Use C cross-references to mention the V4L2 API calls on all
places it occurs inside this file.

While here, also mark constants as such.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] libv4l-introdution.rst: fix function definitions
Mauro Carvalho Chehab [Thu, 8 Sep 2016 09:07:47 +0000 (06:07 -0300)]
[media] libv4l-introdution.rst: fix function definitions

c:type is not the right tag for function definitions.
Replace them by .. c:function::

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] fix clock_gettime cross-references
Mauro Carvalho Chehab [Thu, 8 Sep 2016 08:51:10 +0000 (05:51 -0300)]
[media] fix clock_gettime cross-references

Fix those warnings:

Documentation/media/uapi/cec/cec-ioc-dqevent.rst:124: WARNING: c:func reference target not found: clock_gettime(2)

By replacing it with the right function name, using this shell script:

for i in `find Documentation/media -type f`; do sed 's,clock_gettime(2),clock_gettime,' <$i >a && mv a $i; done

Please notice that this will make the nitpick mode to shut up
complaining about that, becasue clock_gettime is on its exclude list,
but the cross reference will be undefined until someone documents
this function at the core documentation.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] docs-rst: fix some broken struct references
Mauro Carvalho Chehab [Thu, 8 Sep 2016 08:48:50 +0000 (05:48 -0300)]
[media] docs-rst: fix some broken struct references

The :c:type: references point to the structure name, and not to
struct foo.

Fixed via this shell script:

for i in `find Documentation/media -type f`; do perl -ne 'if (s/\:c\:type\:\`struct\s*(\S+)\`/struct :c:type:`$1`/) { s/struct\s+struct/struct/;  s/(struct\s+\:c\:type\:\`\S+\`)\s+structure/$1/;  } print $_' <$i >a && mv a $i; done

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] docs-rst: simplify c:type: cross references
Mauro Carvalho Chehab [Thu, 8 Sep 2016 08:43:01 +0000 (05:43 -0300)]
[media] docs-rst: simplify c:type: cross references

Instead of using c:type:`struct foo <foo>`, use:
struct c:type:`foo`

This patch was generated via this shell script:

for i in `find Documentation/media -type f`; do perl -ne 'if (m/\:c\:type\:\`struct\s+(\S+)\s*\<(\S+)\>\`/) { $s=$1; $r=$2; if ($s eq $r) { s/\:c\:type\:\`struct\s+(\S+)\s*\<(\S+)\>\`/struct :c:type:`$2`/; s/struct\s+struct/struct/;  s/(struct\s+\:c\:type\:\`\S+\`)\s+structure/$1/;  }} print $_' <$i >a && mv a $i; done

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] docs-rst: fix cec bad cross-references
Mauro Carvalho Chehab [Wed, 31 Aug 2016 22:15:05 +0000 (19:15 -0300)]
[media] docs-rst: fix cec bad cross-references

Fix some CEC cross references that are broken.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] docs-rst: fix dmx bad cross-references
Mauro Carvalho Chehab [Wed, 31 Aug 2016 21:57:07 +0000 (18:57 -0300)]
[media] docs-rst: fix dmx bad cross-references

Some structs are pointed via the typedef. As we replaced
those references, fix them.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
8 years ago[media] fix broken references on dvb/video*rst
Mauro Carvalho Chehab [Wed, 31 Aug 2016 19:34:07 +0000 (16:34 -0300)]
[media] fix broken references on dvb/video*rst

Trivially fix those broken references, by copying the structs
fron the header, just like other API documentation at the
DVB side.

This doesn't have the level of quality used at the V4L2 side
of the API, but, as this documents a deprecated API, used
only by av7110 driver, it doesn't make much sense to invest
time making it better.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>