[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <b179953c-5a08-4149-80c4-8610f7c9778a@ideasonboard.com>
Date: Wed, 24 Apr 2024 17:54:17 +0300
From: Tomi Valkeinen <tomi.valkeinen@...asonboard.com>
To: Anatoliy Klymenko <anatoliy.klymenko@....com>
Cc: dri-devel@...ts.freedesktop.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, devicetree@...r.kernel.org,
linux-media@...r.kernel.org,
Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>, Thomas Zimmermann <tzimmermann@...e.de>,
David Airlie <airlied@...il.com>, Daniel Vetter <daniel@...ll.ch>,
Michal Simek <michal.simek@....com>, Andrzej Hajda
<andrzej.hajda@...el.com>, Neil Armstrong <neil.armstrong@...aro.org>,
Robert Foss <rfoss@...nel.org>, Jonas Karlman <jonas@...boo.se>,
Jernej Skrabec <jernej.skrabec@...il.com>,
Mauro Carvalho Chehab <mchehab@...nel.org>
Subject: Re: [PATCH v4 0/7] Managing live video input format for ZynqMP DPSUB
Hi,
On 16/04/2024 23:31, Anatoliy Klymenko wrote:
> Implement live video input format setting for ZynqMP DPSUB.
>
> ZynqMP DPSUB can operate in 2 modes: DMA-based and live.
>
> In the live mode, DPSUB receives a live video signal from FPGA-based CRTC.
> DPSUB acts as a DRM encoder bridge in such a scenario. To properly tune
> into the incoming video signal, DPSUB should be programmed with the proper
> media bus format. This patch series addresses this task.
>
> Patch 1/7: Set the DPSUB layer mode of operation prior to enabling the
> layer. Allows to use layer operational mode before its enablement.
>
> Patch 2/7: Update some IP register defines.
>
> Patch 3/7: Factor out some code into a helper function.
>
> Patch 4/7: Announce supported input media bus formats via
> drm_bridge_funcs.atomic_get_input_bus_fmts callback.
>
> Patch 5/7: Minimize usage of a global flag. Minor improvement.
>
> Patch 6/7: Program DPSUB live video input format based on selected bus
> config in the new atomic bridge state.
>
> Patch 7/7: New optional CRTC atomic helper proposal that will allow to
> negotiate video signal format between CRTC and connected encoder.
> Incorporate this callback into the DRM bridge format negotiation process.
> Save negotiated output format in drm_crtc_state. Reference usage of this
> API is available here:
> https://github.com/onotole/linux/tree/dpsub-live-in
The patches up to and including patch 6 look ready to me. I'll pick them
up to drm-misc.
Tomi
> To: Laurent Pinchart <laurent.pinchart@...asonboard.com>
> To: Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>
> To: Maxime Ripard <mripard@...nel.org>
> To: Thomas Zimmermann <tzimmermann@...e.de>
> To: David Airlie <airlied@...il.com>
> To: Daniel Vetter <daniel@...ll.ch>
> To: Michal Simek <michal.simek@....com>
> To: Andrzej Hajda <andrzej.hajda@...el.com>
> To: Neil Armstrong <neil.armstrong@...aro.org>
> To: Robert Foss <rfoss@...nel.org>
> To: Jonas Karlman <jonas@...boo.se>
> To: Jernej Skrabec <jernej.skrabec@...il.com>
> To: Rob Herring <robh+dt@...nel.org>
> To: Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>
> To: Conor Dooley <conor+dt@...nel.org>
> To: Mauro Carvalho Chehab <mchehab@...nel.org>
> Cc: Tomi Valkeinen <tomi.valkeinen@...asonboard.com>
> Cc: dri-devel@...ts.freedesktop.org
> Cc: linux-arm-kernel@...ts.infradead.org
> Cc: linux-kernel@...r.kernel.org
> Cc: devicetree@...r.kernel.org
> Cc: linux-media@...r.kernel.org
> Signed-off-by: Anatoliy Klymenko <anatoliy.klymenko@....com>
>
> Changes in v4:
> - Replace controversial reference driver patches with the private
> repository link.
> - Split display layer format manipulation functions into 2 separate cases
> for diferet layer modes.
> - Address misc review comments (typos, comments, etc.)
>
> Link to v3: https://lore.kernel.org/r/20240321-dp-live-fmt-v3-0-d5090d796b7e@amd.com
>
> Changes in v3:
> - Add connected live layer helper
> - Include reference DRM format in zynqmp_disp_format for live layerss.
> - Add default bus format list for non-live case.
> - Explain removal of redundant checks in the commit message.
> - Minor fixes and improvements from review comments.
>
> Link to v2: https://lore.kernel.org/r/20240312-dp-live-fmt-v2-0-a9c35dc5c50d@amd.com
>
> Changes in v2:
> - Factor out register defines update into separate patch.
> - Add some improvements minimizing ithe usage of a global flag.
> - Reuse existing format setting API instead of introducing new versions.
> - Add warning around NULL check on new bridge state within atomic enable
> callback.
> - Add drm_helper_crtc_select_output_bus_format() that wraps
> drm_crtc_helper_funcs.select_output_bus_format().
> - Update API comments per review recommendations.
> - Address some minor review comments.
> - Add reference CRTC driver that demonstrates the usage of the proposed
> drm_crtc_helper_funcs.select_output_bus_format() API.
>
> - Link to v1: https://lore.kernel.org/r/20240226-dp-live-fmt-v1-0-b78c3f69c9d8@amd.com
>
> ---
> Anatoliy Klymenko (7):
> drm: xlnx: zynqmp_dpsub: Set layer mode during creation
> drm: xlnx: zynqmp_dpsub: Update live format defines
> drm: xlnx: zynqmp_dpsub: Add connected live layer helper
> drm: xlnx: zynqmp_dpsub: Anounce supported input formats
> drm: xlnx: zynqmp_dpsub: Minimize usage of global flag
> drm: xlnx: zynqmp_dpsub: Set input live format
> drm/atomic-helper: Add select_output_bus_format callback
>
> drivers/gpu/drm/drm_bridge.c | 14 +-
> drivers/gpu/drm/drm_crtc_helper.c | 38 +++++
> drivers/gpu/drm/xlnx/zynqmp_disp.c | 231 +++++++++++++++++++++++++++----
> drivers/gpu/drm/xlnx/zynqmp_disp.h | 17 +--
> drivers/gpu/drm/xlnx/zynqmp_disp_regs.h | 8 +-
> drivers/gpu/drm/xlnx/zynqmp_dp.c | 81 ++++++++---
> drivers/gpu/drm/xlnx/zynqmp_kms.c | 2 +-
> include/drm/drm_crtc.h | 11 ++
> include/drm/drm_crtc_helper.h | 5 +
> include/drm/drm_modeset_helper_vtables.h | 30 ++++
> 10 files changed, 372 insertions(+), 65 deletions(-)
> ---
> base-commit: bfa4437fd3938ae2e186e7664b2db65bb8775670
> change-id: 20240226-dp-live-fmt-6415773b5a68
>
> Best regards,
Powered by blists - more mailing lists