From: <yuji2.ishikawa@toshiba.co.jp>
To: <hverkuil@xs4all.nl>, <laurent.pinchart@ideasonboard.com>,
<mchehab@kernel.org>, <robh+dt@kernel.org>,
<krzysztof.kozlowski+dt@linaro.org>, <conor+dt@kernel.org>,
<nobuhiro1.iwamatsu@toshiba.co.jp>
Cc: <linux-media@vger.kernel.org>, <devicetree@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>
Subject: RE: [PATCH v9 3/5] media: platform: visconti: add V4L2 vendor specific control handlers
Date: Mon, 27 Nov 2023 00:43:21 +0000 [thread overview]
Message-ID: <TYAPR01MB620109D13BA981F8F6BBA49092BDA@TYAPR01MB6201.jpnprd01.prod.outlook.com> (raw)
In-Reply-To: <6095bd3d-2580-44e2-b622-3ad31e12787f@xs4all.nl>
Hello Hans,
Thank you for the review
> -----Original Message-----
> From: Hans Verkuil <hverkuil@xs4all.nl>
> Sent: Tuesday, November 14, 2023 6:02 PM
> To: ishikawa yuji(石川 悠司 ○RDC□AITC○EA開)
> <yuji2.ishikawa@toshiba.co.jp>; Laurent Pinchart
> <laurent.pinchart@ideasonboard.com>; Mauro Carvalho Chehab
> <mchehab@kernel.org>; Rob Herring <robh+dt@kernel.org>; Krzysztof
> Kozlowski <krzysztof.kozlowski+dt@linaro.org>; Conor Dooley
> <conor+dt@kernel.org>; iwamatsu nobuhiro(岩松 信洋 ○DITC□DIT○
> OST) <nobuhiro1.iwamatsu@toshiba.co.jp>
> Cc: linux-media@vger.kernel.org; devicetree@vger.kernel.org;
> linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH v9 3/5] media: platform: visconti: add V4L2 vendor
> specific control handlers
>
> On 12/10/2023 09:13, Yuji Ishikawa wrote:
> > Add support to Image Signal Processors of Visconti's Video Input Interface.
> > This patch adds vendor specific compound controls to configure the
> > image signal processor.
> >
> > Signed-off-by: Yuji Ishikawa <yuji2.ishikawa@toshiba.co.jp>
> > ---
> > Changelog v2:
> > - Resend v1 because a patch exceeds size limit.
> >
> > Changelog v3:
> > - Adapted to media control framework
> > - Introduced ISP subdevice, capture device
> > - Remove private IOCTLs and add vendor specific V4L2 controls
> > - Change function name avoiding camelcase and uppercase letters
> >
> > Changelog v4:
> > - Split patches because the v3 patch exceeds size limit
> > - Stop using ID number to identify driver instance:
> > - Use dynamically allocated structure to hold HW specific context,
> > instead of static one.
> > - Call HW layer functions with the context structure instead of ID
> > number
> >
> > Changelog v5:
> > - no change
> >
> > Changelog v6:
> > - remove unused macros
> > - removed hwd_ and HWD_ prefix
> > - update source code documentation
> > - Suggestion from Hans Verkuil
> > - pointer to userland memory is removed from uAPI arguments
> > - style of structure is now "nested" instead of "chained by pointer";
> > - use div64_u64 for 64bit division
> > - vendor specific controls support TRY_EXT_CTRLS
> > - add READ_ONLY flag to GET_CALIBRATION_STATUS control and similar
> ones
> > - human friendry control names for vendor specific controls
> > - add initial value to each vendor specific control
> > - GET_LAST_CAPTURE_STATUS control is updated asyncnously from
> workqueue
> > - remove EXECUTE_ON_WRITE flag of vendor specific control
> > - uAPI: return value of GET_CALIBRATION_STATUS follows common rules
> of error codes
> > - applied v4l2-compliance
> > - Suggestion from Sakari Ailus
> > - use div64_u64 for 64bit division
> > - update copyright's year
> > - remove redandunt cast
> > - use bool instead of HWD_VIIF_ENABLE/DISABLE
> > - simplify comparison to 0
> > - simplify statements with trigram operator
> > - remove redundant local variables
> > - use general integer types instead of u32/s32
> > - Suggestion from Laurent Pinchart
> > - moved VIIF driver to driver/platform/toshiba/visconti
> > - change register access: struct-style to macro-style
> > - remove unused type definitions
> > - define enums instead of successive macro constants
> > - remove redundant parenthesis of macro constant
> > - embed struct hwd_res into struct viif_device
> > - use xxx_dma instead of xxx_paddr for variable names of IOVA
> > - literal value: just 0 instead of 0x0
> > - use literal 1 or 0 instead of HWD_VIIF_ENABLE, DISABLE for register
> access
> > - use true or false instead of HWD_VIIF_ENABLE, DISABLE for function
> calls
> > - uAPI: return value of GET_CALIBRATION_STATUS follows common rules
> > of error codes
> >
> > Changelog v7:
> > - remove unused variables
> > - split long statements which have multiple logical-OR and trigram
> > operators
> >
> > Changelog v8:
> > - define constant V4L2_CTRL_TYPE_VISCONTI_ISP for datatype
> > of Visconti specific controls
> > - Suggestion from Hans Verkuil
> > - remove pr_info()
> > - use pm_runtime_get_if_in_use() to get power status
> >
> > Changelog v9:
> > - fix warning for cast between ptr and dma_addr_t
> >
> > .../media/platform/toshiba/visconti/Makefile | 2 +-
> > .../media/platform/toshiba/visconti/viif.c | 10 +-
> > .../platform/toshiba/visconti/viif_controls.c | 3395
> +++++++++++++++++
> > .../platform/toshiba/visconti/viif_controls.h | 18 +
> > .../platform/toshiba/visconti/viif_isp.c | 15 +-
> > drivers/media/v4l2-core/v4l2-ctrls-core.c | 7 +-
> > include/uapi/linux/videodev2.h | 2 +
> > 7 files changed, 3431 insertions(+), 18 deletions(-) create mode
> > 100644 drivers/media/platform/toshiba/visconti/viif_controls.c
> > create mode 100644
> > drivers/media/platform/toshiba/visconti/viif_controls.h
> >
>
> <snip>
>
> These core changes below should be in a separate patch, not mixed in with the
> driver.
>
I'll put changes for the core library into a separate patch.
> > diff --git a/drivers/media/v4l2-core/v4l2-ctrls-core.c
> > b/drivers/media/v4l2-core/v4l2-ctrls-core.c
> > index a662fb60f73f..0c4df9fffbe0 100644
> > --- a/drivers/media/v4l2-core/v4l2-ctrls-core.c
> > +++ b/drivers/media/v4l2-core/v4l2-ctrls-core.c
> > @@ -367,7 +367,9 @@ void v4l2_ctrl_type_op_log(const struct v4l2_ctrl *ctrl)
> > case V4L2_CTRL_TYPE_AV1_FILM_GRAIN:
> > pr_cont("AV1_FILM_GRAIN");
> > break;
> > -
> > + case V4L2_CTRL_TYPE_VISCONTI_ISP:
> > + pr_cont("VISCONTI_ISP");
> > + break;
> > default:
> > pr_cont("unknown type %d", ctrl->type);
> > break;
> > @@ -1163,6 +1165,9 @@ static int std_validate_compound(const struct
> v4l2_ctrl *ctrl, u32 idx,
> > case V4L2_CTRL_TYPE_AV1_FILM_GRAIN:
> > return validate_av1_film_grain(p);
> >
> > + case V4L2_CTRL_TYPE_VISCONTI_ISP:
> > + break;
> > +
> > case V4L2_CTRL_TYPE_AREA:
> > area = p;
> > if (!area->width || !area->height)
> > diff --git a/include/uapi/linux/videodev2.h
> > b/include/uapi/linux/videodev2.h index c3d4e490ce7c..bbc3cd3efa65
> > 100644
> > --- a/include/uapi/linux/videodev2.h
> > +++ b/include/uapi/linux/videodev2.h
> > @@ -1915,6 +1915,8 @@ enum v4l2_ctrl_type {
> > V4L2_CTRL_TYPE_AV1_TILE_GROUP_ENTRY = 0x281,
> > V4L2_CTRL_TYPE_AV1_FRAME = 0x282,
> > V4L2_CTRL_TYPE_AV1_FILM_GRAIN = 0x283,
> > +
> > + V4L2_CTRL_TYPE_VISCONTI_ISP = 0x290,
>
> I see you are using the same V4L2_CTRL_TYPE_VISCONTI_ISP for all the
> compound controls. But that's not allowed: the V4L2_CTRL_TYPE_ defines
> determine the control type, so each struct used by a control needs its own type.
I understand.
> I also noticed looking through include/uapi/linux/visconti_viif.h that some of
> the struct have holes. I really want to avoid holes in structs used by controls, it
> is bad practice.
>
> The pahole utility is very useful for testing this. It is also highly recommended to
> check for both 32 and 64 bit compilation: the struct layout must be the same,
> otherwise you would run into problems if a 32 bit application is used with a 64
> bit kernel.
I'll apply pahole tool.
> Finally, Laurent and/or Sakari will also take a look at this driver, for some
> reason this driver has been mostly reviewed by me, but I am not really the
> expert on ISPs.
>
> Regards,
>
> Hans
>
> > };
> >
> > /* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */
Regards,
Yuji
next prev parent reply other threads:[~2023-11-27 0:49 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-12 7:13 [PATCH v9 0/5] Add Toshiba Visconti Video Input Interface driver Yuji Ishikawa
2023-10-12 7:13 ` [PATCH v9 1/5] dt-bindings: media: platform: visconti: Add Toshiba Visconti Video Input Interface Yuji Ishikawa
2023-10-12 19:24 ` Krzysztof Kozlowski
2023-10-12 7:13 ` [PATCH v9 2/5] media: platform: visconti: Add Toshiba Visconti Video Input Interface driver Yuji Ishikawa
2023-10-12 7:13 ` [PATCH v9 3/5] media: platform: visconti: add V4L2 vendor specific control handlers Yuji Ishikawa
2023-11-14 9:02 ` Hans Verkuil
2023-11-14 9:10 ` Hans Verkuil
2023-11-14 9:53 ` Laurent Pinchart
2023-11-27 0:46 ` yuji2.ishikawa
2023-12-06 11:08 ` Hans Verkuil
2023-12-11 0:35 ` yuji2.ishikawa
2023-11-27 0:45 ` yuji2.ishikawa
2023-12-06 11:03 ` Hans Verkuil
2023-11-27 0:43 ` yuji2.ishikawa [this message]
2023-10-12 7:13 ` [PATCH v9 4/5] documentation: media: add documentation for Toshiba Visconti Video Input Interface driver Yuji Ishikawa
2023-11-14 8:49 ` Hans Verkuil
2023-11-27 0:39 ` yuji2.ishikawa
2023-11-22 11:40 ` Sakari Ailus
2023-12-04 4:32 ` yuji2.ishikawa
2024-02-02 6:49 ` Sakari Ailus
2024-04-22 6:45 ` yuji2.ishikawa
2023-10-12 7:13 ` [PATCH v9 5/5] MAINTAINERS: Add entries for Toshiba Visconti Video Input Interface Yuji Ishikawa
2023-11-14 8:40 ` Hans Verkuil
2023-11-27 0:38 ` yuji2.ishikawa
2023-12-06 10:59 ` 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=TYAPR01MB620109D13BA981F8F6BBA49092BDA@TYAPR01MB6201.jpnprd01.prod.outlook.com \
--to=yuji2.ishikawa@toshiba.co.jp \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=hverkuil@xs4all.nl \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=nobuhiro1.iwamatsu@toshiba.co.jp \
--cc=robh+dt@kernel.org \
/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
all inboxes | Powered by JetHome®