devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Cc: Xavier Roumegue <xavier.roumegue@oss.nxp.com>,
	mchehab@kernel.org, stanimir.varbanov@linaro.org,
	tomi.valkeinen@ideasonboard.com, robh+dt@kernel.org,
	nicolas@ndufresne.ca, alexander.stein@ew.tq-group.com,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org
Subject: Re: [PATCH v4 6/9] media: uapi: Add a control for DW100 driver
Date: Mon, 25 Apr 2022 10:11:00 +0300	[thread overview]
Message-ID: <YmZJhI291wruvjlt@pendragon.ideasonboard.com> (raw)
In-Reply-To: <dba106ac-cee1-2493-13c7-ad9aef556a49@xs4all.nl>

On Mon, Apr 25, 2022 at 08:57:07AM +0200, Hans Verkuil wrote:
> On 28/03/2022 16:13, Xavier Roumegue wrote:
> > The DW100 driver gets the dewarping mapping as a binary blob from the
> > userspace application through a custom control.
> > The blob format is hardware specific so create a dedicated control for
> > this purpose.
> > 
> > Signed-off-by: Xavier Roumegue <xavier.roumegue@oss.nxp.com>
> > ---
> >  Documentation/userspace-api/media/drivers/dw100.rst | 12 ++++++++++++
> >  include/uapi/linux/dw100.h                          | 11 +++++++++++
> >  2 files changed, 23 insertions(+)
> >  create mode 100644 include/uapi/linux/dw100.h
> > 
> > diff --git a/Documentation/userspace-api/media/drivers/dw100.rst b/Documentation/userspace-api/media/drivers/dw100.rst
> > index 4cd55c75628e..f6d684cadf26 100644
> > --- a/Documentation/userspace-api/media/drivers/dw100.rst
> > +++ b/Documentation/userspace-api/media/drivers/dw100.rst
> > @@ -20,4 +20,16 @@ match the expected size inherited from the destination image resolution.
> >  More details on the DW100 hardware operations can be found in
> >  *chapter 13.15 DeWarp* of IMX8MP_ reference manuel.
> >  
> > +The Vivante DW100 m2m driver implements the following driver-specific control:
> > +
> > +``V4L2_CID_DW100_DEWARPING_16x16_VERTEX_MAP (integer)``
> 
> (integer) -> (__u32 array)
> 
> But should this be a __u32 array at all? Wouldn't a __u16 array make more sense?
> 
> > +    Specifies to DW100 driver its dewarping map (aka LUT) blob as described in
> > +    *chapter 13.15.2.3 Dewarping Remap* of IMX8MP_ reference manual as an U32
> > +    dynamic array. The image is divided into many small 16x16 blocks. If the
> > +    width of the image is not divisible by 16, the size of the rightmost block
> > +    is the remainder. 
> 
> Isn't the same true for the height?
> 
> The dewarping map only saves the vertex coordinates of the
> > +    block. The dewarping grid map is comprised of vertex coordinates for x and y.
> > +    Each x, y coordinate register uses 16 bits (UQ12.4) to record the coordinate
> 
> As mentioned before, UQ12.4 is not necessarily a standard notation. 'unsigned 12.4
> fixed point' is better, but you also need to specify exactly where the bits are
> stored inside the __u16. I.e.: 'the integer part is stored in the 12 most significant
> bits, and the fractional part is stored in the 4 least significant bits of the __u16.'

Isn't that implied ? I've never seen fixed-point numbers stored the
other way around.

Regarding the Q notation, while it was coined by TI, I think it's
widespread enough to be used here. I don't mind much though.

> > +    address, with the Y coordinate in the upper bits and X in the lower bits.
> 
> And with a __u16 array this becomes: 'The array contains pairs of X, Y coordinates.'
> Or something along those lines.
> 
> > +
> >  .. _IMX8MP: https://www.nxp.com/webapp/Download?colCode=IMX8MPRM
> > diff --git a/include/uapi/linux/dw100.h b/include/uapi/linux/dw100.h
> > new file mode 100644
> > index 000000000000..7fdcf2bf42e5
> > --- /dev/null
> > +++ b/include/uapi/linux/dw100.h
> > @@ -0,0 +1,11 @@
> > +/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
> > +/* Copyright 2022 NXP */
> > +
> > +#ifndef __UAPI_DW100_H__
> > +#define __UAPI_DW100_H__
> > +
> > +#include <linux/v4l2-controls.h>
> > +
> 
> Add a comment referring to the Documentation/userspace-api/media/drivers/dw100.rst
> documentation so users of this control know where to find the associated
> documentation.
> 
> > +#define V4L2_CID_DW100_DEWARPING_16x16_VERTEX_MAP (V4L2_CID_USER_DW100_BASE + 1)
> > +
> > +#endif

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2022-04-25  7:11 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-28 14:13 [PATCH v4 0/9] i.MX8MP DW100 dewarper driver Xavier Roumegue
2022-03-28 14:13 ` [PATCH v4 1/9] videodev2.h: add V4L2_CTRL_FLAG_DYNAMIC_ARRAY Xavier Roumegue
2022-03-28 14:13 ` [PATCH v4 2/9] v4l2-ctrls: add support for dynamically allocated arrays Xavier Roumegue
2022-03-28 14:13 ` [PATCH v4 3/9] vivid: add dynamic array test control Xavier Roumegue
2022-03-28 14:13 ` [PATCH v4 4/9] media: Documentation: dw100: Add user documentation for the DW100 driver Xavier Roumegue
2022-04-25  6:18   ` Hans Verkuil
2022-04-26 21:26     ` Laurent Pinchart
2022-04-25  6:41   ` Hans Verkuil
2022-03-28 14:13 ` [PATCH v4 5/9] media: v4l: uapi: Add user control base for DW100 controls Xavier Roumegue
2022-04-26 21:10   ` Laurent Pinchart
2022-03-28 14:13 ` [PATCH v4 6/9] media: uapi: Add a control for DW100 driver Xavier Roumegue
2022-04-25  6:57   ` Hans Verkuil
2022-04-25  7:11     ` Laurent Pinchart [this message]
2022-04-25  7:38       ` Hans Verkuil
2022-04-26 21:03         ` Xavier Roumegue (OSS)
2022-04-26 21:34     ` Xavier Roumegue (OSS)
2022-04-26 21:44       ` Laurent Pinchart
2022-03-28 14:13 ` [PATCH v4 7/9] media: dt-bindings: media: Add i.MX8MP DW100 binding Xavier Roumegue
2022-03-28 19:32   ` Rob Herring
2022-03-28 14:13 ` [PATCH v4 8/9] media: dw100: Add i.MX8MP dw100 dewarper driver Xavier Roumegue
2022-04-25  7:21   ` Hans Verkuil
2022-03-28 14:13 ` [PATCH v4 9/9] media: MAINTAINERS: add entry for i.MX8MP DW100 v4l2 mem2mem driver Xavier Roumegue
2022-04-26 21:27   ` Laurent Pinchart
2022-04-25  7:25 ` [PATCH v4 0/9] i.MX8MP DW100 dewarper driver Hans Verkuil

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YmZJhI291wruvjlt@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=alexander.stein@ew.tq-group.com \
    --cc=devicetree@vger.kernel.org \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=nicolas@ndufresne.ca \
    --cc=robh+dt@kernel.org \
    --cc=stanimir.varbanov@linaro.org \
    --cc=tomi.valkeinen@ideasonboard.com \
    --cc=xavier.roumegue@oss.nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).