cron job: media_tree daily build: OK

2016-05-19 Thread Hans Verkuil
This message is generated daily by a cron job that builds media_tree for
the kernels and architectures in the list below.

Results of the daily build of media_tree:

date:   Fri May 20 04:00:25 CEST 2016
git branch: test
git hash:   bc2b80ee3490651904f121eac1c8fb7652d48253
gcc version:i686-linux-gcc (GCC) 5.3.0
sparse version: v0.5.0-56-g7647c77
smatch version: v0.5.0-3428-gdfe27cf
host hardware:  x86_64
host os:4.5.0-164

linux-git-arm-at91: OK
linux-git-arm-davinci: OK
linux-git-arm-exynos: OK
linux-git-arm-mx: OK
linux-git-arm-omap: OK
linux-git-arm-omap1: OK
linux-git-arm-pxa: OK
linux-git-blackfin-bf561: OK
linux-git-i686: OK
linux-git-m32r: OK
linux-git-mips: OK
linux-git-powerpc64: OK
linux-git-sh: OK
linux-git-x86_64: OK
linux-2.6.36.4-i686: OK
linux-2.6.37.6-i686: OK
linux-2.6.38.8-i686: OK
linux-2.6.39.4-i686: OK
linux-3.0.60-i686: OK
linux-3.1.10-i686: OK
linux-3.2.37-i686: OK
linux-3.3.8-i686: OK
linux-3.4.27-i686: OK
linux-3.5.7-i686: OK
linux-3.6.11-i686: OK
linux-3.7.4-i686: OK
linux-3.8-i686: OK
linux-3.9.2-i686: OK
linux-3.10.1-i686: OK
linux-3.11.1-i686: OK
linux-3.12.23-i686: OK
linux-3.13.11-i686: OK
linux-3.14.9-i686: OK
linux-3.15.2-i686: OK
linux-3.16.7-i686: OK
linux-3.17.8-i686: OK
linux-3.18.7-i686: OK
linux-3.19-i686: OK
linux-4.0-i686: OK
linux-4.1.1-i686: OK
linux-4.2-i686: OK
linux-4.3-i686: OK
linux-4.4-i686: OK
linux-4.5-i686: OK
linux-4.6-i686: OK
linux-2.6.36.4-x86_64: OK
linux-2.6.37.6-x86_64: OK
linux-2.6.38.8-x86_64: OK
linux-2.6.39.4-x86_64: OK
linux-3.0.60-x86_64: OK
linux-3.1.10-x86_64: OK
linux-3.2.37-x86_64: OK
linux-3.3.8-x86_64: OK
linux-3.4.27-x86_64: OK
linux-3.5.7-x86_64: OK
linux-3.6.11-x86_64: OK
linux-3.7.4-x86_64: OK
linux-3.8-x86_64: OK
linux-3.9.2-x86_64: OK
linux-3.10.1-x86_64: OK
linux-3.11.1-x86_64: OK
linux-3.12.23-x86_64: OK
linux-3.13.11-x86_64: OK
linux-3.14.9-x86_64: OK
linux-3.15.2-x86_64: OK
linux-3.16.7-x86_64: OK
linux-3.17.8-x86_64: OK
linux-3.18.7-x86_64: OK
linux-3.19-x86_64: OK
linux-4.0-x86_64: OK
linux-4.1.1-x86_64: OK
linux-4.2-x86_64: OK
linux-4.3-x86_64: OK
linux-4.4-x86_64: OK
linux-4.5-x86_64: OK
linux-4.6-x86_64: OK
apps: OK
spec-git: OK
sparse: WARNINGS
smatch: WARNINGS

Detailed results are available here:

http://www.xs4all.nl/~hverkuil/logs/Friday.log

Full logs are available here:

http://www.xs4all.nl/~hverkuil/logs/Friday.tar.bz2

The Media Infrastructure API from this daily build is here:

http://www.xs4all.nl/~hverkuil/spec/media.html
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/2] [media] media: i2c/ov5645: add the device tree binding document

2016-05-19 Thread Rob Herring
On Thu, May 19, 2016 at 3:14 AM, Todor Tomov  wrote:
> Hi Rob,
>
> Thank you for your time to review. My responses are below:
>
> On 05/19/2016 02:16 AM, Rob Herring wrote:
>> On Wed, May 18, 2016 at 02:50:07PM +0300, Todor Tomov wrote:
>>> Add the document for ov5645 device tree binding.
>>>
>>> Signed-off-by: Todor Tomov 
>>> ---
>>>  .../devicetree/bindings/media/i2c/ov5645.txt   | 56 
>>> ++
>>>  1 file changed, 56 insertions(+)
>>>  create mode 100644 Documentation/devicetree/bindings/media/i2c/ov5645.txt
>>>
>>> diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.txt 
>>> b/Documentation/devicetree/bindings/media/i2c/ov5645.txt
>>> new file mode 100644
>>> index 000..8799000
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/media/i2c/ov5645.txt
>>> @@ -0,0 +1,56 @@
>>> +* Omnivision 1/4-Inch 5Mp CMOS Digital Image Sensor
>>> +
>>> +The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image sensor 
>>> with
>>> +an active array size of 2592H x 1944V. It is programmable through a serial 
>>> SCCB
>>
>> s/SCCB/I2C/ because that is the more common name.
> Ok.
>
>>
>>> +interface.
>>> +
>>> +Required Properties:
>>> +- compatible: value should be "ovti,ov5645"
>>> +- clocks: reference to the xclk clock
>>> +- clock-names: should be "xclk"
>>> +- assigned-clocks: reference to the xclk clock
>>
>> This should be optional as it only makes sense if there is more than one
>> option.
> I have only used assigned-clocks to specify for which clock the
> assigned-clock-rates property is. This is the way I understood it.
> Isn't this correct? (Also please see below.)

AIUI, assigned-clocks is which parent you want to assign for the clock
specified in "clocks". Whether you have a parent option or not is
board/chip dependent.

>>> +- assigned-clock-rates: should be "2388"
>>
>> Doesn't this depend on the board? Most parts take a range of
>> frequencies. The driver should know what the range is and request a rate
>> within this range.
> This is the sensor external clock. Actually the driver depends on this value -
> the sensor mode settings which the driver configures are calculated based on
> this value. If you change this clock rate you need to change the sensor mode
> settings. However they usually come from the vendor of the sensor so they
> usually never change. So this clock rate for this driver is fixed to 23.88MHz
> and is not expected to change.

If fixed in the driver, then it doesn't need to be in DT.

>>> +
>>> +Optional Properties:
>>> +- reset-gpios: Chip reset GPIO
>>> +- pwdn-gpios: Chip power down GPIO
>>
>> Use enable-gpios as it is more common and would just be the inverse of
>> this.
> pwdn is the notation which OV use for this gpio, so I'd personally prefer
> to keep the name. Do you think it is still better to change it?

Yes.

Rob
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/3] v4l: vsp1: Fix typo in register field names

2016-05-19 Thread Laurent Pinchart
The VI6_RPF_ALPH_SEL ALPHA0 and ALPHA1 fields are inverted, swap them.

Signed-off-by: Laurent Pinchart 
---
 drivers/media/platform/vsp1/vsp1_regs.h | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/media/platform/vsp1/vsp1_regs.h 
b/drivers/media/platform/vsp1/vsp1_regs.h
index 927b5fb94c48..7657545a75ed 100644
--- a/drivers/media/platform/vsp1/vsp1_regs.h
+++ b/drivers/media/platform/vsp1/vsp1_regs.h
@@ -154,10 +154,10 @@
 #define VI6_RPF_ALPH_SEL_AEXT_EXT  (1 << 18)
 #define VI6_RPF_ALPH_SEL_AEXT_ONE  (2 << 18)
 #define VI6_RPF_ALPH_SEL_AEXT_MASK (3 << 18)
-#define VI6_RPF_ALPH_SEL_ALPHA0_MASK   (0xff << 8)
-#define VI6_RPF_ALPH_SEL_ALPHA0_SHIFT  8
-#define VI6_RPF_ALPH_SEL_ALPHA1_MASK   (0xff << 0)
-#define VI6_RPF_ALPH_SEL_ALPHA1_SHIFT  0
+#define VI6_RPF_ALPH_SEL_ALPHA1_MASK   (0xff << 8)
+#define VI6_RPF_ALPH_SEL_ALPHA1_SHIFT  8
+#define VI6_RPF_ALPH_SEL_ALPHA0_MASK   (0xff << 0)
+#define VI6_RPF_ALPH_SEL_ALPHA0_SHIFT  0
 
 #define VI6_RPF_VRTCOL_SET 0x0318
 #define VI6_RPF_VRTCOL_SET_LAYA_MASK   (0xff << 24)
-- 
2.7.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/3] R-Car VSP miscellaneous fixes

2016-05-19 Thread Laurent Pinchart
Hello,

This series fixes three unrelated issues in the R-Car VSP driver. Please see
individual patches for details.

Laurent Pinchart (3):
  v4l: vsp1: Fix typo in register field names
  v4l: vsp1: Fix descriptions of Gen2 VSP instances
  v4l: vsp1: Fix crash when resetting pipeline

 drivers/media/platform/vsp1/vsp1_drv.c  |  6 +++---
 drivers/media/platform/vsp1/vsp1_pipe.c | 14 +-
 drivers/media/platform/vsp1/vsp1_regs.h |  8 
 3 files changed, 16 insertions(+), 12 deletions(-)

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/3] v4l: vsp1: Fix crash when resetting pipeline

2016-05-19 Thread Laurent Pinchart
The vsp1_pipeline_reset() function loops over pipeline inputs and output
and resets them. When doing so it assumes both that the pipeline has
been correctly configured with an output, and that inputs are are stored
in the pipe inputs array at positions 0 to num_inputs-1.

Both the assumptions are incorrect. The pipeline might need to be reset
after a failed attempts to configure it, without any output specified.
Furthermore, inputs are stored in a positiong equal to their RPF index,
possibly creating holes in the inputs array if the RPFs are not used in
sequence.

Fix both issues by looping over the whole inputs array and skipping
unused entries, and ignoring the output when not set.

Fixes: ff7e97c94d9f ("[media] v4l: vsp1: Store pipeline pointer in rwpf")
Signed-off-by: Laurent Pinchart 
---
 drivers/media/platform/vsp1/vsp1_pipe.c | 14 +-
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/media/platform/vsp1/vsp1_pipe.c 
b/drivers/media/platform/vsp1/vsp1_pipe.c
index be47c8a1a812..3c6f623f056c 100644
--- a/drivers/media/platform/vsp1/vsp1_pipe.c
+++ b/drivers/media/platform/vsp1/vsp1_pipe.c
@@ -172,13 +172,17 @@ void vsp1_pipeline_reset(struct vsp1_pipeline *pipe)
bru->inputs[i].rpf = NULL;
}
 
-   for (i = 0; i < pipe->num_inputs; ++i) {
-   pipe->inputs[i]->pipe = NULL;
-   pipe->inputs[i] = NULL;
+   for (i = 0; i < ARRAY_SIZE(pipe->inputs); ++i) {
+   if (pipe->inputs[i]) {
+   pipe->inputs[i]->pipe = NULL;
+   pipe->inputs[i] = NULL;
+   }
}
 
-   pipe->output->pipe = NULL;
-   pipe->output = NULL;
+   if (pipe->output) {
+   pipe->output->pipe = NULL;
+   pipe->output = NULL;
+   }
 
INIT_LIST_HEAD(>entities);
pipe->state = VSP1_PIPELINE_STOPPED;
-- 
2.7.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/3] v4l: vsp1: Fix descriptions of Gen2 VSP instances

2016-05-19 Thread Laurent Pinchart
The number of UDS and WPF are set to incorrect values, fix them.

Signed-off-by: Laurent Pinchart 
---
 drivers/media/platform/vsp1/vsp1_drv.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/media/platform/vsp1/vsp1_drv.c 
b/drivers/media/platform/vsp1/vsp1_drv.c
index e655639af7e2..70e7a81e8255 100644
--- a/drivers/media/platform/vsp1/vsp1_drv.c
+++ b/drivers/media/platform/vsp1/vsp1_drv.c
@@ -560,7 +560,7 @@ static const struct vsp1_device_info vsp1_device_infos[] = {
.gen = 2,
.features = VSP1_HAS_BRU | VSP1_HAS_SRU,
.rpf_count = 5,
-   .uds_count = 1,
+   .uds_count = 3,
.wpf_count = 4,
.num_bru_inputs = 4,
.uapi = true,
@@ -570,7 +570,7 @@ static const struct vsp1_device_info vsp1_device_infos[] = {
.features = VSP1_HAS_BRU | VSP1_HAS_LIF | VSP1_HAS_LUT,
.rpf_count = 4,
.uds_count = 1,
-   .wpf_count = 4,
+   .wpf_count = 1,
.num_bru_inputs = 4,
.uapi = true,
}, {
@@ -578,7 +578,7 @@ static const struct vsp1_device_info vsp1_device_infos[] = {
.gen = 2,
.features = VSP1_HAS_BRU | VSP1_HAS_LUT | VSP1_HAS_SRU,
.rpf_count = 5,
-   .uds_count = 3,
+   .uds_count = 1,
.wpf_count = 4,
.num_bru_inputs = 4,
.uapi = true,
-- 
2.7.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v4 0/6] R-Car VSP: Add and set media entities functions

2016-05-19 Thread Laurent Pinchart
Hello,

This patch series adds new media entities functions for video processing and
video statistics computation, and updates the VSP driver to use the new
functions.

Patches 1/6 and 2/6 define and document the new functions. They have been
submitted previously in the "[PATCH v2 00/54] R-Car VSP improvements for v4.7"
patch series, this version takes feedback received over e-mail and IRC into
account.

Patches 3/6 to 5/6 prepare the VSP driver to report the correct entity
functions. They make sure that the LIF will never be exposed to userspace as
no function currently exists for that block, and it isn't clear at the moment
what new function should be added. As the LIF is only needed when the VSP is
controlled directly from the DU driver without being exposed to userspace, a
function isn't needed for the LIF anyway.

Patch 6/6 finally sets functions for all the VSP entities.

The code is based on top of the "[PATCH/RFC v2 0/4] Meta-data video device
type" patch series, although it doesn't strictly depend on it. For convenience
I've pushed all patches to

git://linuxtv.org/pinchartl/media.git vsp1/functions

Laurent Pinchart (6):
  media: Add video processing entity functions
  media: Add video statistics computation functions
  v4l: vsp1: Base link creation on availability of entities
  v4l: vsp1: Don't register media device when userspace API is disabled
  v4l: vsp1: Don't create LIF entity when the userspace API is enabled
  v4l: vsp1: Set entities functions

 Documentation/DocBook/media/v4l/media-types.xml | 64 +
 drivers/media/platform/vsp1/vsp1_bru.c  |  3 +-
 drivers/media/platform/vsp1/vsp1_drv.c  | 36 +++---
 drivers/media/platform/vsp1/vsp1_entity.c   |  3 +-
 drivers/media/platform/vsp1/vsp1_entity.h   |  2 +-
 drivers/media/platform/vsp1/vsp1_hgo.c  |  3 +-
 drivers/media/platform/vsp1/vsp1_hsit.c |  5 +-
 drivers/media/platform/vsp1/vsp1_lif.c  |  7 ++-
 drivers/media/platform/vsp1/vsp1_lut.c  |  3 +-
 drivers/media/platform/vsp1/vsp1_rpf.c  |  3 +-
 drivers/media/platform/vsp1/vsp1_sru.c  |  3 +-
 drivers/media/platform/vsp1/vsp1_uds.c  |  3 +-
 drivers/media/platform/vsp1/vsp1_wpf.c  |  3 +-
 include/uapi/linux/media.h  | 10 
 14 files changed, 119 insertions(+), 29 deletions(-)

-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v4 2/6] media: Add video statistics computation functions

2016-05-19 Thread Laurent Pinchart
The video statistics function describes entities such as video histogram
engines or 3A statistics engines.

Signed-off-by: Laurent Pinchart 
---
 Documentation/DocBook/media/v4l/media-types.xml | 9 +
 include/uapi/linux/media.h  | 1 +
 2 files changed, 10 insertions(+)

diff --git a/Documentation/DocBook/media/v4l/media-types.xml 
b/Documentation/DocBook/media/v4l/media-types.xml
index 60fe841f8846..95aa1f9c836a 100644
--- a/Documentation/DocBook/media/v4l/media-types.xml
+++ b/Documentation/DocBook/media/v4l/media-types.xml
@@ -176,6 +176,15 @@
   skipping are considered as scaling.

  
+ 
+   
MEDIA_ENT_F_PROC_VIDEO_STATISTICS
+   Video statistics computation (histogram, 3A, ...). An entity
+  capable of statistics computation must have one sink pad and
+  one source pad. It computes statistics over the frames
+  received on its sink pad and outputs the statistics data on
+  its source pad.
+   
+ 

   
 
diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h
index bff3ffdfd55f..4580328c4093 100644
--- a/include/uapi/linux/media.h
+++ b/include/uapi/linux/media.h
@@ -103,6 +103,7 @@ struct media_device_info {
 #define MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV  (MEDIA_ENT_F_BASE + 0x4003)
 #define MEDIA_ENT_F_PROC_VIDEO_LUT (MEDIA_ENT_F_BASE + 0x4004)
 #define MEDIA_ENT_F_PROC_VIDEO_SCALER  (MEDIA_ENT_F_BASE + 0x4005)
+#define MEDIA_ENT_F_PROC_VIDEO_STATISTICS  (MEDIA_ENT_F_BASE + 0x4006)
 
 /*
  * Connectors
-- 
2.7.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v4 6/6] v4l: vsp1: Set entities functions

2016-05-19 Thread Laurent Pinchart
Initialize the function field of all subdev entities instantiated by the
driver. This gets rids of multiple warnings printed by the media
controller core.

Signed-off-by: Laurent Pinchart 
---
 drivers/media/platform/vsp1/vsp1_bru.c| 3 ++-
 drivers/media/platform/vsp1/vsp1_entity.c | 3 ++-
 drivers/media/platform/vsp1/vsp1_entity.h | 2 +-
 drivers/media/platform/vsp1/vsp1_hgo.c| 3 ++-
 drivers/media/platform/vsp1/vsp1_hsit.c   | 5 +++--
 drivers/media/platform/vsp1/vsp1_lif.c| 7 ++-
 drivers/media/platform/vsp1/vsp1_lut.c| 3 ++-
 drivers/media/platform/vsp1/vsp1_rpf.c| 3 ++-
 drivers/media/platform/vsp1/vsp1_sru.c| 3 ++-
 drivers/media/platform/vsp1/vsp1_uds.c| 3 ++-
 drivers/media/platform/vsp1/vsp1_wpf.c| 3 ++-
 11 files changed, 26 insertions(+), 12 deletions(-)

diff --git a/drivers/media/platform/vsp1/vsp1_bru.c 
b/drivers/media/platform/vsp1/vsp1_bru.c
index b1068c018011..835593dd88b3 100644
--- a/drivers/media/platform/vsp1/vsp1_bru.c
+++ b/drivers/media/platform/vsp1/vsp1_bru.c
@@ -390,7 +390,8 @@ struct vsp1_bru *vsp1_bru_create(struct vsp1_device *vsp1)
bru->entity.type = VSP1_ENTITY_BRU;
 
ret = vsp1_entity_init(vsp1, >entity, "bru",
-  vsp1->info->num_bru_inputs + 1, _ops);
+  vsp1->info->num_bru_inputs + 1, _ops,
+  MEDIA_ENT_F_PROC_VIDEO_COMPOSER);
if (ret < 0)
return ERR_PTR(ret);
 
diff --git a/drivers/media/platform/vsp1/vsp1_entity.c 
b/drivers/media/platform/vsp1/vsp1_entity.c
index 2d278583ce17..86499433441f 100644
--- a/drivers/media/platform/vsp1/vsp1_entity.c
+++ b/drivers/media/platform/vsp1/vsp1_entity.c
@@ -443,7 +443,7 @@ static const struct vsp1_route vsp1_routes[] = {
 
 int vsp1_entity_init(struct vsp1_device *vsp1, struct vsp1_entity *entity,
 const char *name, unsigned int num_pads,
-const struct v4l2_subdev_ops *ops)
+const struct v4l2_subdev_ops *ops, u32 function)
 {
struct v4l2_subdev *subdev;
unsigned int i;
@@ -486,6 +486,7 @@ int vsp1_entity_init(struct vsp1_device *vsp1, struct 
vsp1_entity *entity,
subdev = >subdev;
v4l2_subdev_init(subdev, ops);
 
+   subdev->entity.function = function;
subdev->entity.ops = >media_ops;
subdev->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
 
diff --git a/drivers/media/platform/vsp1/vsp1_entity.h 
b/drivers/media/platform/vsp1/vsp1_entity.h
index ea3f4125aa1c..777f89608882 100644
--- a/drivers/media/platform/vsp1/vsp1_entity.h
+++ b/drivers/media/platform/vsp1/vsp1_entity.h
@@ -106,7 +106,7 @@ static inline struct vsp1_entity *to_vsp1_entity(struct 
v4l2_subdev *subdev)
 
 int vsp1_entity_init(struct vsp1_device *vsp1, struct vsp1_entity *entity,
 const char *name, unsigned int num_pads,
-const struct v4l2_subdev_ops *ops);
+const struct v4l2_subdev_ops *ops, u32 function);
 void vsp1_entity_destroy(struct vsp1_entity *entity);
 
 extern const struct v4l2_subdev_internal_ops vsp1_subdev_internal_ops;
diff --git a/drivers/media/platform/vsp1/vsp1_hgo.c 
b/drivers/media/platform/vsp1/vsp1_hgo.c
index 8ca0ac3900bd..eeb08879fb87 100644
--- a/drivers/media/platform/vsp1/vsp1_hgo.c
+++ b/drivers/media/platform/vsp1/vsp1_hgo.c
@@ -465,7 +465,8 @@ struct vsp1_hgo *vsp1_hgo_create(struct vsp1_device *vsp1)
hgo->entity.ops = _entity_ops;
hgo->entity.type = VSP1_ENTITY_HGO;
 
-   ret = vsp1_entity_init(vsp1, >entity, "hgo", 2, _ops);
+   ret = vsp1_entity_init(vsp1, >entity, "hgo", 2, _ops,
+  MEDIA_ENT_F_PROC_VIDEO_STATISTICS);
if (ret < 0)
return ERR_PTR(ret);
 
diff --git a/drivers/media/platform/vsp1/vsp1_hsit.c 
b/drivers/media/platform/vsp1/vsp1_hsit.c
index 68b8567b374d..41b09e49e659 100644
--- a/drivers/media/platform/vsp1/vsp1_hsit.c
+++ b/drivers/media/platform/vsp1/vsp1_hsit.c
@@ -161,8 +161,9 @@ struct vsp1_hsit *vsp1_hsit_create(struct vsp1_device 
*vsp1, bool inverse)
else
hsit->entity.type = VSP1_ENTITY_HST;
 
-   ret = vsp1_entity_init(vsp1, >entity, inverse ? "hsi" : "hst", 2,
-  _ops);
+   ret = vsp1_entity_init(vsp1, >entity, inverse ? "hsi" : "hst",
+  2, _ops,
+  MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV);
if (ret < 0)
return ERR_PTR(ret);
 
diff --git a/drivers/media/platform/vsp1/vsp1_lif.c 
b/drivers/media/platform/vsp1/vsp1_lif.c
index 0217393f22df..60d26b600768 100644
--- a/drivers/media/platform/vsp1/vsp1_lif.c
+++ b/drivers/media/platform/vsp1/vsp1_lif.c
@@ -165,7 +165,12 @@ struct vsp1_lif *vsp1_lif_create(struct vsp1_device *vsp1)
lif->entity.ops = _entity_ops;
lif->entity.type = VSP1_ENTITY_LIF;
 
-   ret = 

[PATCH v4 5/6] v4l: vsp1: Don't create LIF entity when the userspace API is enabled

2016-05-19 Thread Laurent Pinchart
The LIF is only used when feeding the VSP output to the DU. The only way
to do so is by controlling the VSP directly from the DU driver and
disabling the VSP userspace API. There is thus no need to create a LIF
entity when the userspace API is enabled, as it can't be used in that
case.

Signed-off-by: Laurent Pinchart 
---
 drivers/media/platform/vsp1/vsp1_drv.c | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/media/platform/vsp1/vsp1_drv.c 
b/drivers/media/platform/vsp1/vsp1_drv.c
index c7e28cc97bdc..de575b4215f8 100644
--- a/drivers/media/platform/vsp1/vsp1_drv.c
+++ b/drivers/media/platform/vsp1/vsp1_drv.c
@@ -182,19 +182,15 @@ static int vsp1_uapi_create_links(struct vsp1_device 
*vsp1)
 
for (i = 0; i < vsp1->info->wpf_count; ++i) {
/* Connect the video device to the WPF. All connections are
-* immutable except for the WPF0 source link if a LIF is
-* present.
+* immutable.
 */
struct vsp1_rwpf *wpf = vsp1->wpf[i];
-   unsigned int flags = MEDIA_LNK_FL_ENABLED;
-
-   if (!(vsp1->info->features & VSP1_HAS_LIF) || i != 0)
-   flags |= MEDIA_LNK_FL_IMMUTABLE;
 
ret = media_create_pad_link(>entity.subdev.entity,
RWPF_PAD_SOURCE,
>video->video.entity, 0,
-   flags);
+   MEDIA_LNK_FL_IMMUTABLE |
+   MEDIA_LNK_FL_ENABLED);
if (ret < 0)
return ret;
}
@@ -293,7 +289,11 @@ static int vsp1_create_entities(struct vsp1_device *vsp1)
list_add_tail(>hgo->entity.list_dev, >entities);
}
 
-   if (vsp1->info->features & VSP1_HAS_LIF) {
+   /* The LIF is only supported when used in conjunction with the DU, in
+* which case the userspace API is disabled. If the userspace API is
+* enabled skip the LIF, even when present.
+*/
+   if (vsp1->info->features & VSP1_HAS_LIF && !vsp1->info->uapi) {
vsp1->lif = vsp1_lif_create(vsp1);
if (IS_ERR(vsp1->lif)) {
ret = PTR_ERR(vsp1->lif);
-- 
2.7.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v4 3/6] v4l: vsp1: Base link creation on availability of entities

2016-05-19 Thread Laurent Pinchart
Check the entity pointer instead of the feature flag to see if the
entity is available before creating related links. The two methods are
currently equivalent, but will differ in the future as we implement
support for ignoring some of the entities present in the hardware.

Signed-off-by: Laurent Pinchart 
---
 drivers/media/platform/vsp1/vsp1_drv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/vsp1/vsp1_drv.c 
b/drivers/media/platform/vsp1/vsp1_drv.c
index c737f15ad1f4..d369fad797aa 100644
--- a/drivers/media/platform/vsp1/vsp1_drv.c
+++ b/drivers/media/platform/vsp1/vsp1_drv.c
@@ -149,7 +149,7 @@ static int vsp1_uapi_create_links(struct vsp1_device *vsp1)
return ret;
}
 
-   if (vsp1->info->features & VSP1_HAS_HGO) {
+   if (vsp1->hgo) {
ret = media_create_pad_link(>hgo->entity.subdev.entity,
HGO_PAD_SOURCE,
>hgo->histo.video.entity, 0,
@@ -159,7 +159,7 @@ static int vsp1_uapi_create_links(struct vsp1_device *vsp1)
return ret;
}
 
-   if (vsp1->info->features & VSP1_HAS_LIF) {
+   if (vsp1->lif) {
ret = media_create_pad_link(>wpf[0]->entity.subdev.entity,
RWPF_PAD_SOURCE,
>lif->entity.subdev.entity,
-- 
2.7.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v4 1/6] media: Add video processing entity functions

2016-05-19 Thread Laurent Pinchart
Add composer, pixel formatter, pixel encoding converter and scaler
functions.

Signed-off-by: Laurent Pinchart 
---
 Documentation/DocBook/media/v4l/media-types.xml | 55 +
 include/uapi/linux/media.h  |  9 
 2 files changed, 64 insertions(+)

diff --git a/Documentation/DocBook/media/v4l/media-types.xml 
b/Documentation/DocBook/media/v4l/media-types.xml
index 5e3f20fdcf17..60fe841f8846 100644
--- a/Documentation/DocBook/media/v4l/media-types.xml
+++ b/Documentation/DocBook/media/v4l/media-types.xml
@@ -121,6 +121,61 @@
MEDIA_ENT_F_AUDIO_MIXER
Audio Mixer Function Entity.
  
+ 
+   MEDIA_ENT_F_PROC_VIDEO_COMPOSER
+   Video composer (blender). An entity capable of video
+  composing must have at least two sink pads and one source
+  pad, and composes input video frames onto output video
+  frames. Composition can be performed using alpha blending,
+  color keying, raster operations (ROP), stitching or any other
+  means.
+   
+ 
+ 
+   
MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER
+   Video pixel formatter. An entity capable of pixel formatting
+  must have at least one sink pad and one source pad. Read
+  pixel formatters read pixels from memory and perform a subset
+  of unpacking, cropping, color keying, alpha multiplication
+  and pixel encoding conversion. Write pixel formatters perform
+  a subset of dithering, pixel encoding conversion and packing
+  and write pixels to memory.
+   
+ 
+ 
+   
MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV
+   Video pixel encoding converter. An entity capable of pixel
+  enconding conversion must have at least one sink pad and one
+  source pad, and convert the encoding of pixels received on
+  its sink pad(s) to a different encoding output on its source
+  pad(s). Pixel encoding conversion includes but isn't limited
+  to RGB to/from HSV, RGB to/from YUV and CFA (Bayer) to RGB
+  conversions.
+   
+ 
+ 
+   MEDIA_ENT_F_PROC_VIDEO_LUT
+   Video look-up table. An entity capable of video lookup table
+  processing must have one sink pad and one source pad. It uses
+  the values of the pixels received on its sink pad to look up
+  entries in internal tables and output them on its source pad.
+  The lookup processing can be performed on all components
+  separately or combine them for multi-dimensional table
+  lookups.
+   
+ 
+ 
+   MEDIA_ENT_F_PROC_VIDEO_SCALER
+   Video scaler. An entity capable of video scaling must have
+  at least one sink pad and one source pad, and scale the
+  video frame(s) received on its sink pad(s) to a different
+  resolution output on its source pad(s). The range of
+  supported scaling ratios is entity-specific and can differ
+  between the horizontal and vertical directions (in particular
+  scaling can be supported in one direction only). Binning and
+  skipping are considered as scaling.
+   
+ 

   
 
diff --git a/include/uapi/linux/media.h b/include/uapi/linux/media.h
index e226bc35c639..bff3ffdfd55f 100644
--- a/include/uapi/linux/media.h
+++ b/include/uapi/linux/media.h
@@ -96,6 +96,15 @@ struct media_device_info {
 #define MEDIA_ENT_F_AUDIO_MIXER(MEDIA_ENT_F_BASE + 0x03003)
 
 /*
+ * Processing entities
+ */
+#define MEDIA_ENT_F_PROC_VIDEO_COMPOSER(MEDIA_ENT_F_BASE + 
0x4001)
+#define MEDIA_ENT_F_PROC_VIDEO_PIXEL_FORMATTER (MEDIA_ENT_F_BASE + 0x4002)
+#define MEDIA_ENT_F_PROC_VIDEO_PIXEL_ENC_CONV  (MEDIA_ENT_F_BASE + 0x4003)
+#define MEDIA_ENT_F_PROC_VIDEO_LUT (MEDIA_ENT_F_BASE + 0x4004)
+#define MEDIA_ENT_F_PROC_VIDEO_SCALER  (MEDIA_ENT_F_BASE + 0x4005)
+
+/*
  * Connectors
  */
 /* It is a responsibility of the entity drivers to add connectors and links */
-- 
2.7.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v4 4/6] v4l: vsp1: Don't register media device when userspace API is disabled

2016-05-19 Thread Laurent Pinchart
The media device doesn't need to be exposed to userspace when the VSP is
fully controlled by the DU driver. Don't register it in that case.

Signed-off-by: Laurent Pinchart 
---
 drivers/media/platform/vsp1/vsp1_drv.c | 16 +---
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/drivers/media/platform/vsp1/vsp1_drv.c 
b/drivers/media/platform/vsp1/vsp1_drv.c
index d369fad797aa..c7e28cc97bdc 100644
--- a/drivers/media/platform/vsp1/vsp1_drv.c
+++ b/drivers/media/platform/vsp1/vsp1_drv.c
@@ -218,7 +218,8 @@ static void vsp1_destroy_entities(struct vsp1_device *vsp1)
}
 
v4l2_device_unregister(>v4l2_dev);
-   media_device_unregister(>media_dev);
+   if (vsp1->info->uapi)
+   media_device_unregister(>media_dev);
media_device_cleanup(>media_dev);
 
if (!vsp1->info->uapi)
@@ -403,14 +404,15 @@ static int vsp1_create_entities(struct vsp1_device *vsp1)
/* Register subdev nodes if the userspace API is enabled or initialize
 * the DRM pipeline otherwise.
 */
-   if (vsp1->info->uapi)
+   if (vsp1->info->uapi) {
ret = v4l2_device_register_subdev_nodes(>v4l2_dev);
-   else
-   ret = vsp1_drm_init(vsp1);
-   if (ret < 0)
-   goto done;
+   if (ret < 0)
+   goto done;
 
-   ret = media_device_register(mdev);
+   ret = media_device_register(mdev);
+   } else {
+   ret = vsp1_drm_init(vsp1);
+   }
 
 done:
if (ret < 0)
-- 
2.7.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 2/2] media: rc: nuvoton: decrease size of raw event fifo

2016-05-19 Thread Heiner Kallweit
This chip has a 32 byte HW FIFO only. Therefore the default fifo size
of 512 raw events is not needed and can be significantly decreased.

Signed-off-by: Heiner Kallweit 
---
v2:
- make patch part of a series
---
 drivers/media/rc/nuvoton-cir.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/media/rc/nuvoton-cir.c b/drivers/media/rc/nuvoton-cir.c
index 99b303b..e98c955 100644
--- a/drivers/media/rc/nuvoton-cir.c
+++ b/drivers/media/rc/nuvoton-cir.c
@@ -1186,6 +1186,7 @@ static int nvt_probe(struct pnp_dev *pdev, const struct 
pnp_device_id *dev_id)
rdev->priv = nvt;
rdev->driver_type = RC_DRIVER_IR_RAW;
rdev->allowed_protocols = RC_BIT_ALL;
+   rdev->raw_fifo_size = RX_BUF_LEN;
rdev->open = nvt_open;
rdev->close = nvt_close;
rdev->tx_ir = nvt_tx_ir;
-- 
2.8.2

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 1/2] media: rc: make fifo size for raw events configurable via rc_dev

2016-05-19 Thread Heiner Kallweit
Currently the fifo size is 512 elements. After a recent patch the size
of struct ir_raw_event is down to 8 bytes, so the fifo still consumes
4KB. In most cases a much smaller fifo is sufficient, e.g. nuvoton-cir
triggers event processing after 24 events latest.

This patch introduces an element raw_fifo_size to struct rc_dev to
allow configuring the fifo size. If not set the current default
MAX_IR_EVENT_SIZE is used.

Signed-off-by: Heiner Kallweit 
---
v2:
- access dev->raw_fifo_size only after check for !dev
---
 drivers/media/rc/rc-core-priv.h |  2 +-
 drivers/media/rc/rc-ir-raw.c| 14 --
 include/media/rc-core.h |  2 ++
 3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/drivers/media/rc/rc-core-priv.h b/drivers/media/rc/rc-core-priv.h
index 585d5e5..ae6f81e 100644
--- a/drivers/media/rc/rc-core-priv.h
+++ b/drivers/media/rc/rc-core-priv.h
@@ -39,7 +39,7 @@ struct ir_raw_event_ctrl {
struct task_struct  *thread;
spinlock_t  lock;
/* fifo for the pulse/space durations */
-   DECLARE_KFIFO(kfifo, struct ir_raw_event, MAX_IR_EVENT_SIZE);
+   DECLARE_KFIFO_PTR(kfifo, struct ir_raw_event);
ktime_t last_event; /* when last event 
occurred */
enum raw_event_type last_type;  /* last event type */
struct rc_dev   *dev;   /* pointer to the 
parent rc_dev */
diff --git a/drivers/media/rc/rc-ir-raw.c b/drivers/media/rc/rc-ir-raw.c
index 144304c..f9b7734 100644
--- a/drivers/media/rc/rc-ir-raw.c
+++ b/drivers/media/rc/rc-ir-raw.c
@@ -261,17 +261,24 @@ int ir_raw_event_register(struct rc_dev *dev)
 {
int rc;
struct ir_raw_handler *handler;
+   unsigned fifo_size = MAX_IR_EVENT_SIZE;
 
if (!dev)
return -EINVAL;
 
+   if (dev->raw_fifo_size)
+   fifo_size = dev->raw_fifo_size;
+
dev->raw = kzalloc(sizeof(*dev->raw), GFP_KERNEL);
if (!dev->raw)
return -ENOMEM;
 
dev->raw->dev = dev;
dev->change_protocol = change_protocol;
-   INIT_KFIFO(dev->raw->kfifo);
+
+   rc = kfifo_alloc(>raw->kfifo, fifo_size, GFP_KERNEL);
+   if (rc)
+   goto out;
 
spin_lock_init(>raw->lock);
dev->raw->thread = kthread_run(ir_raw_event_thread, dev->raw,
@@ -279,7 +286,7 @@ int ir_raw_event_register(struct rc_dev *dev)
 
if (IS_ERR(dev->raw->thread)) {
rc = PTR_ERR(dev->raw->thread);
-   goto out;
+   goto out_kfifo;
}
 
mutex_lock(_raw_handler_lock);
@@ -291,6 +298,8 @@ int ir_raw_event_register(struct rc_dev *dev)
 
return 0;
 
+out_kfifo:
+   kfifo_free(>raw->kfifo);
 out:
kfree(dev->raw);
dev->raw = NULL;
@@ -313,6 +322,7 @@ void ir_raw_event_unregister(struct rc_dev *dev)
handler->raw_unregister(dev);
mutex_unlock(_raw_handler_lock);
 
+   kfifo_free(>raw->kfifo);
kfree(dev->raw);
dev->raw = NULL;
 }
diff --git a/include/media/rc-core.h b/include/media/rc-core.h
index f6f55b7..07e096b 100644
--- a/include/media/rc-core.h
+++ b/include/media/rc-core.h
@@ -72,6 +72,7 @@ enum rc_filter_type {
  * anyone can call show_protocols or store_protocols
  * @minor: unique minor remote control device number
  * @raw: additional data for raw pulse/space devices
+ * @raw_fifo_size: size of fifo for raw events
  * @input_dev: the input child device used to communicate events to userspace
  * @driver_type: specifies if protocol decoding is done in hardware or software
  * @idle: used to keep track of RX state
@@ -133,6 +134,7 @@ struct rc_dev {
struct mutexlock;
unsigned intminor;
struct ir_raw_event_ctrl*raw;
+   unsignedraw_fifo_size;
struct input_dev*input_dev;
enum rc_driver_type driver_type;
boolidle;
-- 
2.8.2


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: gstreamer: v4l2videodec plugin

2016-05-19 Thread ayaka



在 2016年05月15日 15:41, Nicolas Dufresne 写道:

Le vendredi 13 mai 2016 à 11:45 +0300, Stanimir Varbanov a écrit :

One thing which bothers me is how the extra-controls property
working,
i.e. I failed to change the h264 profile for example with below
construct:

extra-controls="controls,h264_profile=4;"

Yes, and profile should be negotiated with downstream in GStreamer. For
common controls, like bitrate, it should be exposed as separate
properties instead.

Please try the new patches in
https://github.com/hizukiayaka/gst-plugins-good
And look at this commit
https://github.com/hizukiayaka/gst-plugins-good/commit/92b99ba9322cf8a1039b877315b12bc9813e95cf

NOTE: even you could set those extra controls and driver accepted. It 
doesn't mean it would work.
I looked at the s5p-mfc driver, it just set it then leave it alone. I 
may fix this bug in the few weeks.


Nicolas


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: gstreamer: v4l2videodec plugin

2016-05-19 Thread Nicolas Dufresne
Le jeudi 19 mai 2016 à 15:25 +0200, Philipp Zabel a écrit :
> Is there any reason not to update the MFC driver to use G_SELECTION?
> The
> g_crop implementation could be kept for backwards compatibility.

Videobuf2 already provide this backward compatible implementation, so
there is no reason not to port that driver (if this is not done
already, maybe ask Kamil ?).

Nicolas

signature.asc
Description: This is a digitally signed message part


Re: gstreamer: v4l2videodec plugin

2016-05-19 Thread Philipp Zabel
Am Samstag, den 14.05.2016, 15:07 +0300 schrieb Stanimir Varbanov:
[...]
> > While I got you. I would be very interested to know who QCOM driver
> > interpreted the width and height expose on capture side of the decoder.
> > I'm adding Philippe Zabel in CC here (he's maintaining the
> > CODA/Freescale decoder). In Samsung MFC driver, the width and height
> > expose by the driver is the display size. Though, recently, Philippe is
> > reporting that his driver is exposing the coded size. Fixing one in
> > GStreamer will break the other, so I was wondering what other drivers
> > are doing.
> 
> In qcom driver s_fmt on capture queue will return bigger or the same as
> coded resolution depending on the width/height. This is related to hw
> alignment restrictions i.e 1280x720 on output queue will become 1280x736
> on capture queue. The the userspace can/must call g_crop to receive the
> active resolution for displaying.

Since in that case the input video is nominally 1280x720, and we are not
cropping away anything from that, this shouldn't use G_CROP (which maps
to G_SELECTION with V4L2_SEL_TGT_CROP_ACTIVE), but G_SELECTION with
V4L2_SEL_TGT_COMPOSE_DEFAULT on the capture queue.

For mem2mem devices, cropping should happen at the output queue, and
composing at the capture queue. For devices that don't scale, such as
decoders, the output crop rectangle should have the same size as the
capture compose rectangle.

Is there any reason not to update the MFC driver to use G_SELECTION? The
g_crop implementation could be kept for backwards compatibility.

regards
Philipp

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 1/2] [media] media: i2c/ov5645: add the device tree binding document

2016-05-19 Thread Todor Tomov
Hi Rob,

Thank you for your time to review. My responses are below:

On 05/19/2016 02:16 AM, Rob Herring wrote:
> On Wed, May 18, 2016 at 02:50:07PM +0300, Todor Tomov wrote:
>> Add the document for ov5645 device tree binding.
>>
>> Signed-off-by: Todor Tomov 
>> ---
>>  .../devicetree/bindings/media/i2c/ov5645.txt   | 56 
>> ++
>>  1 file changed, 56 insertions(+)
>>  create mode 100644 Documentation/devicetree/bindings/media/i2c/ov5645.txt
>>
>> diff --git a/Documentation/devicetree/bindings/media/i2c/ov5645.txt 
>> b/Documentation/devicetree/bindings/media/i2c/ov5645.txt
>> new file mode 100644
>> index 000..8799000
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/media/i2c/ov5645.txt
>> @@ -0,0 +1,56 @@
>> +* Omnivision 1/4-Inch 5Mp CMOS Digital Image Sensor
>> +
>> +The Omnivision OV5645 is a 1/4-Inch CMOS active pixel digital image sensor 
>> with
>> +an active array size of 2592H x 1944V. It is programmable through a serial 
>> SCCB
> 
> s/SCCB/I2C/ because that is the more common name.
Ok.

> 
>> +interface.
>> +
>> +Required Properties:
>> +- compatible: value should be "ovti,ov5645"
>> +- clocks: reference to the xclk clock
>> +- clock-names: should be "xclk"
>> +- assigned-clocks: reference to the xclk clock
> 
> This should be optional as it only makes sense if there is more than one 
> option.
I have only used assigned-clocks to specify for which clock the
assigned-clock-rates property is. This is the way I understood it.
Isn't this correct? (Also please see below.)

> 
>> +- assigned-clock-rates: should be "2388"
> 
> Doesn't this depend on the board? Most parts take a range of 
> frequencies. The driver should know what the range is and request a rate 
> within this range.
This is the sensor external clock. Actually the driver depends on this value - 
the sensor mode settings which the driver configures are calculated based on
this value. If you change this clock rate you need to change the sensor mode
settings. However they usually come from the vendor of the sensor so they
usually never change. So this clock rate for this driver is fixed to 23.88MHz
and is not expected to change.

> 
>> +
>> +Optional Properties:
>> +- reset-gpios: Chip reset GPIO
>> +- pwdn-gpios: Chip power down GPIO
> 
> Use enable-gpios as it is more common and would just be the inverse of 
> this.
pwdn is the notation which OV use for this gpio, so I'd personally prefer
to keep the name. Do you think it is still better to change it?

> 
> Both need to specify the polarity.
Ok, I'll add a note for the polarity.

> 
>> +- dovdd-supply: Chip IO regulator
>> +- dvdd-supply: Chip core regulator
>> +- avdd-supply: Chip analog regulator
>> +
>> +The device node must contain one 'port' child node for its digital output
>> +video port, in accordance with the video interface bindings defined in
>> +Documentation/devicetree/bindings/media/video-interfaces.txt.

-- 
Best regards,
Todor Tomov
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html