[PATCH 00/23] Add Tegra20 parallel video input capture

Hans Verkuil hverkuil-cisco at xs4all.nl
Thu Nov 24 08:36:14 UTC 2022


Hi Luca,

On 09/11/2022 15:18, luca.ceresoli at bootlin.com wrote:
> From: Luca Ceresoli <luca.ceresoli at bootlin.com>
> 
> 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,
> and I started from a working downstream 3.1 kernel, that I have heavily
> reworked to fit into the existing tegra-video driver. 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 some fixes, some generic cleanups and DT
> bindings.

I plan on testing this series (esp. making sure it keeps working on non-tegra210
hardware), but I have to find time for that. This is on my TODO list, so I will
get to it, but it might time.

In the meantime, don't hesitate to post new versions (I saw comments on the
bindings), when I have time for testing I'll pick the latest version you post.
In other words, don't let lack of review comments from me stop you from working
on this :-)

Regards,

	Hans

> 
> Quick tour of the patches:
> 
>  * Device tree bindings and minor DTS improvements
> 
>    01. dt-bindings: display: tegra: add bindings for Tegra20 VIP
>    02. dt-bindings: display: tegra: vi: add 'vip' property and example
>    03. ARM: dts: tegra20: add label to nvidia,tegra20-vi node
>    04. ARM: dts: tegra20-tamonten: add label to avdd_vdac regulator
> 
>  * A fix
> 
>    05. staging: media: tegra-video: fix .vidioc_enum_fmt_vid_cap to return all formats
> 
>  * Minor improvements to logging, comments, cleanups
> 
>    06. staging: media: tegra-video: improve documentation of tegra_video_format fields
>    07. staging: media: tegra-video: document tegra_channel_get_remote_source_subdev
>    08. staging: media: tegra-video: fix typos in comment
>    09. staging: media: tegra-video: improve error messages
>    10. staging: media: tegra-video: slightly simplify cleanup on errors
>    11. staging: media: tegra-video: move private struct declaration to C file
>    12. staging: media: tegra-video: remove unneeded include
> 
>  * Preparation to make the VI module generic enough to host Tegra20 and VIP
> 
>    13. staging: media: tegra-video: Kconfig: allow TPG only on Tegra210
>    14. staging: media: tegra-video: move tegra_channel_fmt_align to a per-soc op
>    15. staging: media: tegra-video: move default format to soc-specific data
>    16. staging: media: tegra-video: move MIPI calibration calls from VI to CSI
>    17. staging: media: tegra-video: add a per-soc enable/disable op
>    18. staging: media: tegra-video: move syncpt init/free to a per-soc op
>    19. staging: media: tegra-video: add syncpts for Tegra20 to struct tegra_vi
>    20. staging: media: tegra-video: add hooks for planar YUV and H/V flip
>    21. staging: media: tegra-video: add H/V flip controls
> 
>  * Implementation of VIP and Tegra20
> 
>    22. staging: media: tegra-video: add support for VIP (parallel video input)
>    23. staging: media: tegra-video: add tegra20 variant
> 
> Enjoy!
> 
> Luca
> 
> Luca Ceresoli (23):
>   dt-bindings: display: tegra: add bindings for Tegra20 VIP
>   dt-bindings: display: tegra: vi: add 'vip' property and example
>   ARM: dts: tegra20: add label to nvidia,tegra20-vi node
>   ARM: dts: tegra20-tamonten: add label to avdd_vdac regulator
>   staging: media: tegra-video: fix .vidioc_enum_fmt_vid_cap to return
>     all formats
>   staging: media: tegra-video: improve documentation of
>     tegra_video_format fields
>   staging: media: tegra-video: document
>     tegra_channel_get_remote_source_subdev
>   staging: media: tegra-video: fix typos in comment
>   staging: media: tegra-video: improve error messages
>   staging: media: tegra-video: slightly simplify cleanup on errors
>   staging: media: tegra-video: move private struct declaration to C file
>   staging: media: tegra-video: remove unneeded include
>   staging: media: tegra-video: Kconfig: allow TPG only on Tegra210
>   staging: media: tegra-video: move tegra_channel_fmt_align to a per-soc
>     op
>   staging: media: tegra-video: move default format to soc-specific data
>   staging: media: tegra-video: move MIPI calibration calls from VI to
>     CSI
>   staging: media: tegra-video: add a per-soc enable/disable op
>   staging: media: tegra-video: move syncpt init/free to a per-soc op
>   staging: media: tegra-video: add syncpts for Tegra20 to struct
>     tegra_vi
>   staging: media: tegra-video: add hooks for planar YUV and H/V flip
>   staging: media: tegra-video: add H/V flip controls
>   staging: media: tegra-video: add support for VIP (parallel video
>     input)
>   staging: media: tegra-video: add tegra20 variant
> 
>  .../display/tegra/nvidia,tegra20-vi.yaml      |  68 ++
>  .../display/tegra/nvidia,tegra20-vip.yaml     |  64 ++
>  MAINTAINERS                                   |  10 +
>  arch/arm/boot/dts/tegra20-tamonten.dtsi       |   2 +-
>  arch/arm/boot/dts/tegra20.dtsi                |   2 +-
>  drivers/staging/media/tegra-video/Kconfig     |   1 +
>  drivers/staging/media/tegra-video/Makefile    |   2 +
>  drivers/staging/media/tegra-video/csi.c       |  44 ++
>  drivers/staging/media/tegra-video/tegra20.c   | 649 ++++++++++++++++++
>  drivers/staging/media/tegra-video/tegra210.c  |  97 ++-
>  drivers/staging/media/tegra-video/vi.c        | 321 ++-------
>  drivers/staging/media/tegra-video/vi.h        |  76 +-
>  drivers/staging/media/tegra-video/video.c     |   5 +
>  drivers/staging/media/tegra-video/video.h     |   2 +-
>  drivers/staging/media/tegra-video/vip.c       | 298 ++++++++
>  drivers/staging/media/tegra-video/vip.h       |  72 ++
>  16 files changed, 1425 insertions(+), 288 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-vip.yaml
>  create mode 100644 drivers/staging/media/tegra-video/tegra20.c
>  create mode 100644 drivers/staging/media/tegra-video/vip.c
>  create mode 100644 drivers/staging/media/tegra-video/vip.h
> 



More information about the dri-devel mailing list