[PATCH v2 0/5] Visconti: Add Toshiba Visconti Video Input Interface driver

yuji2.ishikawa at toshiba.co.jp yuji2.ishikawa at toshiba.co.jp
Wed Apr 20 06:22:06 PDT 2022


Hi, Hans

Thank you for your review and comment.

> -----Original Message-----
> From: Hans Verkuil <hverkuil at xs4all.nl>
> Sent: Wednesday, April 20, 2022 4:55 PM
> To: ishikawa yuji(石川 悠司 ○RDC□AITC○EA開)
> <yuji2.ishikawa at toshiba.co.jp>; Mauro Carvalho Chehab
> <mchehab at kernel.org>; iwamatsu nobuhiro(岩松 信洋 □SWC◯ACT)
> <nobuhiro1.iwamatsu at toshiba.co.jp>; Laurent Pinchart
> <laurent.pinchart at ideasonboard.com>
> Cc: linux-media at vger.kernel.org; linux-arm-kernel at lists.infradead.org;
> linux-kernel at vger.kernel.org
> Subject: Re: [PATCH v2 0/5] Visconti: Add Toshiba Visconti Video Input
> Interface driver
> 
> Hi Yuji,
> 
> On 14/04/2022 07:35, Yuji Ishikawa wrote:
> > This series is the Video Input Interface driver for Toshiba's ARM SoC,
> Visconti[0].
> > This provides DT binding documentation, device driver, MAINTAINER fiels.
> >
> > Best regards,
> > Yuji
> >
> > [0]:
> >
> https://toshiba.semicon-storage.com/ap-en/semiconductor/product/image-
> > recognition-processors-visconti.html
> >
> >
> >   dt-bindings: media: platform: visconti: Add Toshiba Visconti Video Input
> Interface bindings
> >     v1 -> v2:
> >       - No update
> >
> >   media: platform: visconti: Add Toshiba Visconti Video Input Interface driver
> headers
> >     v1 -> v2:
> >       - moved driver headers to an individual patch
> >
> >   media: platform: visconti: Add Toshiba Visconti Video Input Interface driver
> body
> >     v1 -> v2:
> >       - moved driver sources to an individual patch
> >
> >   media: platform: visconti: Add Toshiba VIIF image signal processor driver
> >     v1 -> v2:
> >       - moved image signal processor driver to an individual patch
> >
> >   MAINTAINERS: Add entries for Toshiba Visconti Video Input Interface
> >     v1 -> v2:
> >       - No update
> >
> > Change in V2:
> >   - moved files into individual patches to decrease patch size
> 
> Thank you for your patch series.
> 
> However, there are quite a few things that need more work. I'll make some high
> level guidelines here, and go into a bit more detail in some of the patches.
> 
> First of all, run your patches through 'scripts/checkpatch.pl --strict' and fix the
> many warnings, errors and checks. Use common sense, sometimes a check or
> warning isn't actually valid, but the vast majority of what checkpatch spits out
> appears reasonable.

I'll execute checkpatch.pl with --strict option.

> 
> Another thing I noticed is code like this:
> 
> +		if (param->r_cr_in_offset > HWD_VIIF_CSC_MAX_OFFSET)
> +			return -EINVAL;
> +
> +		if (param->g_y_in_offset > HWD_VIIF_CSC_MAX_OFFSET)
> +			return -EINVAL;
> +
> +		if (param->b_cb_in_offset > HWD_VIIF_CSC_MAX_OFFSET)
> +			return -EINVAL;
> +
> +		if (param->r_cr_out_offset > HWD_VIIF_CSC_MAX_OFFSET)
> +			return -EINVAL;
> +
> +		if (param->g_y_out_offset > HWD_VIIF_CSC_MAX_OFFSET)
> +			return -EINVAL;
> +
> +		if (param->b_cb_out_offset > HWD_VIIF_CSC_MAX_OFFSET)
> +			return -EINVAL;
> 
> This can easily be combined into a single if:
> 
> 		if (param->r_cr_in_offset > HWD_VIIF_CSC_MAX_OFFSET ||
> 		    param->g_y_in_offset > HWD_VIIF_CSC_MAX_OFFSET ||
> 		    param->b_cb_in_offset > HWD_VIIF_CSC_MAX_OFFSET
> ||
> 		    param->r_cr_out_offset > HWD_VIIF_CSC_MAX_OFFSET
> ||
> 		    param->g_y_out_offset > HWD_VIIF_CSC_MAX_OFFSET
> ||
> 		    param->b_cb_out_offset >
> HWD_VIIF_CSC_MAX_OFFSET)
> 			return -EINVAL;
> 
> Easier to read and a lot shorter.

I'll fix them

> 
> Another thing to avoid is mixing lower and upper case in function names.
> A lot of functions have this prefix: 'hwd_VIIF_'. Just change that to
> 'hwd_viif_': that's much easier on the eyes.

I'll fix them. 
I'm also wondering if the common prefix hwd_viif_ is acceptable for the identifiers in Visconti VIIIF driver.

> I also see a fair amount of code that is indented very far to the right.
> Often due to constructs like this:
> 
> 	if (test) {
> 		// lots of code
> 	}
> 	return ret;
> 
> Which can be changed to:
> 
> 	if (!test)
> 		return ret;
> 	// lots of code
> 	return ret;
> 
> The same can also happen in a for/while loop where you can just 'continue'
> instead of 'return'.
> 
> This makes the code easier to read and review.

Yes, the indents are too deep.
I'll try fix them.

> It doesn't look like this driver uses the media controller API. This is probably
> something you want to look into, esp. in combination with libcamera support
> (https://libcamera.org/). I've added Laurent to this, since he's the expert on
> this.

Thank you for great advice. I wanted to know how to control/aggregate functions of VIIF.
As I'm completely new to media controller API, I'll check the documents first.

Regards,
	Yuji

> Regards,
> 
> 	Hans
> 
> >
> > Yuji Ishikawa (5):
> >   dt-bindings: media: platform: visconti: Add Toshiba Visconti Video
> >     Input Interface bindings
> >   media: platform: visconti: Add Toshiba Visconti Video Input Interface
> >     driver headers
> >   media: platform: visconti: Add Toshiba Visconti Video Input Interface
> >     driver body
> >   media: platform: visconti: Add Toshiba VIIF image signal processor
> >     driver
> >   MAINTAINERS: Add entries for Toshiba Visconti Video Input Interface
> >
> >  .../bindings/media/toshiba,visconti-viif.yaml |  103 +
> >  MAINTAINERS                                   |    2 +
> >  drivers/media/platform/Kconfig                |    2 +
> >  drivers/media/platform/Makefile               |    4 +
> >  drivers/media/platform/visconti/Kconfig       |    9 +
> >  drivers/media/platform/visconti/Makefile      |    9 +
> >  drivers/media/platform/visconti/hwd_viif.c    | 2233 ++++++++++
> >  drivers/media/platform/visconti/hwd_viif.h    | 1776 ++++++++
> >  .../media/platform/visconti/hwd_viif_csi2rx.c |  767 ++++
> >  .../platform/visconti/hwd_viif_internal.h     |  361 ++
> >  .../media/platform/visconti/hwd_viif_l1isp.c  | 3769
> +++++++++++++++++
> >  .../media/platform/visconti/hwd_viif_reg.h    | 2802 ++++++++++++
> >  drivers/media/platform/visconti/viif.c        | 2384 +++++++++++
> >  drivers/media/platform/visconti/viif.h        |  134 +
> >  include/uapi/linux/visconti_viif.h            | 1683 ++++++++
> >  15 files changed, 16038 insertions(+)  create mode 100644
> > Documentation/devicetree/bindings/media/toshiba,visconti-viif.yaml
> >  create mode 100644 drivers/media/platform/visconti/Kconfig
> >  create mode 100644 drivers/media/platform/visconti/Makefile
> >  create mode 100644 drivers/media/platform/visconti/hwd_viif.c
> >  create mode 100644 drivers/media/platform/visconti/hwd_viif.h
> >  create mode 100644 drivers/media/platform/visconti/hwd_viif_csi2rx.c
> >  create mode 100644
> > drivers/media/platform/visconti/hwd_viif_internal.h
> >  create mode 100644 drivers/media/platform/visconti/hwd_viif_l1isp.c
> >  create mode 100644 drivers/media/platform/visconti/hwd_viif_reg.h
> >  create mode 100644 drivers/media/platform/visconti/viif.c
> >  create mode 100644 drivers/media/platform/visconti/viif.h
> >  create mode 100644 include/uapi/linux/visconti_viif.h
> >


More information about the linux-arm-kernel mailing list