Re: [PATCH v5 00/20] Add Tegra20 parallel video input capture

Luca Ceresoli
2023-04-12T09:16:19Z

Hello Hans,

On Fri, 7 Apr 2023 15:38:32 +0200
Luca Ceresoli <luca.ceresoli@bootlin.com> wrote:

> New in v5: dropped the patch that was removing lots of the logic behind
> enum_format, after discussion with Hans. The rest is unmodified except for
> rebasing and fixing a couple typos in comments.
>
> Full details follow.
>
> Tegra20 and other Tegra SoCs have a video input (VI) peripheral that can
> receive from either MIPI CSI-2 or parallel video (called respectively "CSI"
> and "VIP" in the documentation). The kernel currently has a staging driver
> for Tegra210 CSI capture. This patch set adds support for Tegra20 VIP
> capture.
>
> Unfortunately I had no real documentation available to base this work on.
> I only had a working downstream 3.1 kernel, so I started with the driver
> found there and heavily reworked it to fit into the mainline tegra-video
> driver structure. The existing code appears written with the intent of
> being modular and allow adding new input mechanisms and new SoCs while
> keeping a unique VI core module. However its modularity and extensibility
> was not enough to add Tegra20 VIP support, so I added some hooks to turn
> hard-coded behaviour into per-SoC or per-bus customizable code. There are
> also a fix, some generic cleanups and DT bindings.
>
> Quick tour of the patches:
>
> * Device tree bindings
>
> 01. dt-bindings: display: tegra: add Tegra20 VIP
> 02. dt-bindings: display: tegra: vi: add 'vip' property and example
>
> * Minor improvements to logging, comments, cleanups
>
> 03. staging: media: tegra-video: improve documentation of tegra_video_format fields
> 04. staging: media: tegra-video: document tegra_channel_get_remote_source_subdev
> 05. staging: media: tegra-video: fix typos in comment
> 06. staging: media: tegra-video: improve error messages
> 07. staging: media: tegra-video: slightly simplify cleanup on errors
> 08. staging: media: tegra-video: move private struct declaration to C file
> 09. staging: media: tegra-video: move tegra210_csi_soc to C file
> 10. staging: media: tegra-video: remove unneeded include
>
> * Preparation to make the VI module generic enough to host Tegra20 and VIP
>
> 11. staging: media: tegra-video: Kconfig: allow TPG only on Tegra210
> 12. staging: media: tegra-video: move tegra_channel_fmt_align to a per-soc op
> 13. staging: media: tegra-video: move default format to soc-specific data
> 14. staging: media: tegra-video: move MIPI calibration calls from VI to CSI
> 15. staging: media: tegra-video: add a per-soc enable/disable op
> 16. staging: media: tegra-video: move syncpt init/free to a per-soc op
> 17. staging: media: tegra-video: add syncpts for Tegra20 to struct tegra_vi
> 18. staging: media: tegra-video: add hooks for planar YUV and H/V flip
> 19. staging: media: tegra-video: add H/V flip controls
>
> * Implementation of VIP and Tegra20
>
> 20. staging: media: tegra-video: add support for Tegra20 parallel input
>
> Enjoy!
>
> Changed in v5:
> - removed patch 3 as requested by Hans Verkuil; now the driver is kept
> video-node-centric and the enum_format logic is unchanged
> - rebased on top of that
> - trivial fixes (typos)

According to your review of v4, removing patch 3 was the only change
required, and I didn't do anything else, and there have been no big
changes since v1 anyway, so I was wondering whether this series has any
hope to make it for 6.4...

Best regards,
Luca

--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering