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

From: Hans Verkuil
Date: Wed Sep 27 2023 - 09:23:58 EST


Hi Yuji Ishikawa,

On 26/09/2023 01:28, Yuji Ishikawa wrote:
> This series is the Video Input Interface driver
> for Toshiba's ARM SoC, Visconti.
> This provides DT binding documentation,
> device driver, documentation and MAINTAINER files.
>
> A visconti VIIF driver instance exposes
> 1 media control device file and 3 video device files
> for a VIIF hardware.
> Detailed HW/SW are described in documentation directory.
> The VIIF hardware has CSI2 receiver,
> image signal processor and DMAC inside.
> The subdevice for image signal processor provides
> vendor specific V4L2 controls.
>
> The device driver depends on two other drivers under development;
> clock framework driver and IOMMU driver.
> Corresponding features will be added later.

Building this series results in a set of sparse warnings:

drivers/media/platform/toshiba/visconti/viif_capture.c:235:29: warning: symbol 'out_format_spec' was not declared. Should it be static?
drivers/media/platform/toshiba/visconti/viif_capture.c:517:13: warning: context imbalance in 'viif_regbuf_access_start' - wrong count at exit
drivers/media/platform/toshiba/visconti/viif_capture.c:523:13: warning: context imbalance in 'viif_regbuf_access_end' - unexpected unlock
drivers/media/platform/toshiba/visconti/viif_csi2rx.c:458:15: warning: Using plain integer as NULL pointer
drivers/media/platform/toshiba/visconti/viif_csi2rx.c:458:15: warning: Using plain integer as NULL pointer

And I also get a Documentation build warning:

Documentation/output/videodev2.h.rst:6: WARNING: undefined label: 'v4l2-ctrl-type-visconti-isp'

Also note that you need to rebase: the v4l2-controls.h header changed.

Regards,

Hans

>
> Best regards,
> Yuji
>
> Changelog v2:
> - Resend v1 because a patch exceeds size limit.
>
> Changelog v3:
> - Add documentation to describe SW and HW
> - 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 a patch exceeds size limit
> - fix dt-bindings document
> - stop specifying ID numbers for driver instance explicitly at device tree
> - use pm_runtime to trigger initialization of HW
> along with open/close of device files.
> - add a entry for a header file at MAINTAINERS file
>
> Changelog v5:
> - Fix coding style problem in viif.c (patch 2/6)
>
> Changelog v6:
> - add register definition of BUS-IF and MPU in dt-bindings
> - add CSI2RX subdevice (separeted from ISP subdevice)
> - change directory layout (moved to media/platform/toshiba/visconti)
> - change source file layout (removed hwd_xxxx.c)
> - pointer to userland memory is removed from uAPI parameters
> - change register access (from struct style to macro style)
> - remove unused macros
>
> Changelog v7:
> - remove redundant "bindings" from header and description text
> - fix multiline text of "description"
> - change "compatible" to "visconti5-viif"
> - explicitly define allowed properties for port::endpoint
> - remove unused variables
> - update kerneldoc comments
> - update references to headers
>
> Changelog v8:
> - rename bindings description file
> - remove/simplify items in bindings
> - update operations around v4l2_async_notifier
> - use v4l2_async_connection instead of v4l2_async_subdev
> - use dev_err_probe()
> - better error handling at probe
> - remove redundant mutex
> - add V4L2_CTRL_TYPE_VISCONTI_ISP constant
>
> Yuji Ishikawa (5):
> dt-bindings: media: platform: visconti: Add Toshiba Visconti Video
> Input Interface
> media: platform: visconti: Add Toshiba Visconti Video Input Interface
> driver
> media: add V4L2 vendor specific control handlers
> documentation: media: add documentation for Toshiba Visconti Video
> Input Interface driver
> MAINTAINERS: Add entries for Toshiba Visconti Video Input Interface
>
> .../media/toshiba,visconti5-viif.yaml | 105 +
> .../driver-api/media/drivers/index.rst | 1 +
> .../media/drivers/visconti-viif.rst | 462 +++
> .../media/v4l/vidioc-g-ext-ctrls.rst | 4 +
> .../media/v4l/vidioc-queryctrl.rst | 5 +
> MAINTAINERS | 4 +
> drivers/media/platform/Kconfig | 1 +
> drivers/media/platform/Makefile | 1 +
> drivers/media/platform/toshiba/Kconfig | 6 +
> drivers/media/platform/toshiba/Makefile | 2 +
> .../media/platform/toshiba/visconti/Kconfig | 18 +
> .../media/platform/toshiba/visconti/Makefile | 8 +
> .../media/platform/toshiba/visconti/viif.c | 650 ++++
> .../media/platform/toshiba/visconti/viif.h | 374 ++
> .../platform/toshiba/visconti/viif_capture.c | 1489 ++++++++
> .../platform/toshiba/visconti/viif_capture.h | 22 +
> .../platform/toshiba/visconti/viif_common.c | 199 +
> .../platform/toshiba/visconti/viif_common.h | 38 +
> .../platform/toshiba/visconti/viif_controls.c | 3394 +++++++++++++++++
> .../platform/toshiba/visconti/viif_controls.h | 18 +
> .../platform/toshiba/visconti/viif_csi2rx.c | 691 ++++
> .../platform/toshiba/visconti/viif_csi2rx.h | 24 +
> .../toshiba/visconti/viif_csi2rx_regs.h | 102 +
> .../platform/toshiba/visconti/viif_isp.c | 1259 ++++++
> .../platform/toshiba/visconti/viif_isp.h | 24 +
> .../platform/toshiba/visconti/viif_regs.h | 716 ++++
> drivers/media/v4l2-core/v4l2-ctrls-core.c | 7 +-
> include/uapi/linux/v4l2-controls.h | 6 +
> include/uapi/linux/videodev2.h | 2 +
> include/uapi/linux/visconti_viif.h | 1800 +++++++++
> 30 files changed, 11431 insertions(+), 1 deletion(-)
> create mode 100644 Documentation/devicetree/bindings/media/toshiba,visconti5-viif.yaml
> create mode 100644 Documentation/driver-api/media/drivers/visconti-viif.rst
> create mode 100644 drivers/media/platform/toshiba/Kconfig
> create mode 100644 drivers/media/platform/toshiba/Makefile
> create mode 100644 drivers/media/platform/toshiba/visconti/Kconfig
> create mode 100644 drivers/media/platform/toshiba/visconti/Makefile
> create mode 100644 drivers/media/platform/toshiba/visconti/viif.c
> create mode 100644 drivers/media/platform/toshiba/visconti/viif.h
> create mode 100644 drivers/media/platform/toshiba/visconti/viif_capture.c
> create mode 100644 drivers/media/platform/toshiba/visconti/viif_capture.h
> create mode 100644 drivers/media/platform/toshiba/visconti/viif_common.c
> create mode 100644 drivers/media/platform/toshiba/visconti/viif_common.h
> create mode 100644 drivers/media/platform/toshiba/visconti/viif_controls.c
> create mode 100644 drivers/media/platform/toshiba/visconti/viif_controls.h
> create mode 100644 drivers/media/platform/toshiba/visconti/viif_csi2rx.c
> create mode 100644 drivers/media/platform/toshiba/visconti/viif_csi2rx.h
> create mode 100644 drivers/media/platform/toshiba/visconti/viif_csi2rx_regs.h
> create mode 100644 drivers/media/platform/toshiba/visconti/viif_isp.c
> create mode 100644 drivers/media/platform/toshiba/visconti/viif_isp.h
> create mode 100644 drivers/media/platform/toshiba/visconti/viif_regs.h
> create mode 100644 include/uapi/linux/visconti_viif.h
>