devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ryan Walklin <ryan@testtoast.com>
To: Maxime Ripard <mripard@kernel.org>, Chen-Yu Tsai <wens@csie.org>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
	Jernej Skrabec <jernej.skrabec@gmail.com>,
	Samuel Holland <samuel@sholland.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>
Cc: Andre Przywara <andre.przywara@arm.com>,
	Chris Morgan <macroalpha82@gmail.com>,
	John Watts <contact@jookia.org>,
	dri-devel@lists.freedesktop.org,
	linux-arm-kernel@lists.infradead.org,
	linux-sunxi@lists.linux.dev, devicetree@vger.kernel.org,
	linux-clk@vger.kernel.org, Ryan Walklin <ryan@testtoast.com>
Subject: [PATCH v4 00/26] drm: sun4i: add Display Engine 3.3 (DE33) support
Date: Sat, 21 Sep 2024 21:45:49 +1200	[thread overview]
Message-ID: <20240921095153.213568-1-ryan@testtoast.com> (raw)

Hi,

V4 of this patch series adding support for the Allwinner DE33 display engine variant. V4 is rebased on torvalds/master with the 'drm-next-2024-09-19' branch merged, with no code changes required. V3 was in turn rebased on top of the layer init and modesetting changes merged for 6.11. No functional changes from V3, fixes and reviews from previous V1-3 added, and a single #include correction.

Original blurb below:

There is existing mainline support for the DE2 and DE3 AllWinner display pipeline IP blocks, used in the A64 and H6 among others, however the H700 (as well as the H616/H618 and the T507 automotive SoC) have a newer version of the Display Engine (v3.3/DE33) which adds additional high-resolution support as well as YUV colour formats and AFBC compression support.

This patch set adds DE33 support, following up from the previous RFC [1], with significant rework to break down the previous relatively complex set into more logical steps, detailed below.

1. Refactor the existing DE2/DE3 code in readiness to support YUV colour formats in the DE3 engine (patches 1-4).
2. Add YUV420 colour format support in the DE3 driver (patches 5-12).
3. Replace the is_de3 mixer flag with an enum to support multiple DE versions (patch 13).
4. Refactor the mixer, vi_scaler and some register code to merge common init code and more easily support multiple DE versions (patches 14-17).
5. Add Arm Frame Buffer Compression (AFBC) compressed buffer support to the DE3 driver. This is currently only supported for VI layers (for HW-decoded video output) but is well integrated into these changes and a subsequent patchset to enable the Video Engine is planned. (patch 18).
6. Add DT bindings for the DE33 engine. (patches 19-21).
7. Extend the DE2/3 driver for the DE33, comprising clock, mixer, vi_scaler, fmt and csc module support (patches 22-26).

Further patchsets are planned to support HDMI and the LCD timing controller present in these SoCs.

Regards,

Ryan

Jernej Skrabec (22):
  drm: sun4i: de2/de3: Change CSC argument
  drm: sun4i: de2/de3: Merge CSC functions into one
  drm: sun4i: de2/de3: call csc setup also for UI layer
  drm: sun4i: de2: Initialize layer fields earlier
  drm: sun4i: de3: Add YUV formatter module
  drm: sun4i: de3: add format enumeration function to engine
  drm: sun4i: de3: add formatter flag to mixer config
  drm: sun4i: de3: add YUV support to the DE3 mixer
  drm: sun4i: de3: pass engine reference to ccsc setup function
  drm: sun4i: de3: add YUV support to the color space correction module
  drm: sun4i: de3: add YUV support to the TCON
  drm: sun4i: support YUV formats in VI scaler
  drm: sun4i: de2/de3: add mixer version enum
  drm: sun4i: de2/de3: refactor mixer initialisation
  drm: sun4i: vi_scaler refactor vi_scaler enablement
  drm: sun4i: de2/de3: add generic blender register reference function
  drm: sun4i: de2/de3: use generic register reference function for layer
    configuration
  drm: sun4i: de3: Implement AFBC support
  drm: sun4i: de33: mixer: add Display Engine 3.3 (DE33) support
  drm: sun4i: de33: vi_scaler: add Display Engine 3.3 (DE33) support
  drm: sun4i: de33: fmt: add Display Engine 3.3 (DE33) support
  drm: sun4i: de33: csc: add Display Engine 3.3 (DE33) support

Ryan Walklin (4):
  dt-bindings: allwinner: add H616 DE33 bus binding
  dt-bindings: allwinner: add H616 DE33 clock binding
  dt-bindings: allwinner: add H616 DE33 mixer binding
  clk: sunxi-ng: ccu: add Display Engine 3.3 (DE33) support

 .../bus/allwinner,sun50i-a64-de2.yaml         |   4 +-
 .../clock/allwinner,sun8i-a83t-de2-clk.yaml   |   1 +
 .../allwinner,sun8i-a83t-de2-mixer.yaml       |   1 +
 drivers/clk/sunxi-ng/ccu-sun8i-de2.c          |  25 ++
 drivers/gpu/drm/sun4i/Makefile                |   3 +-
 drivers/gpu/drm/sun4i/sun4i_tcon.c            |  26 +-
 drivers/gpu/drm/sun4i/sun50i_afbc.c           | 250 +++++++++++++
 drivers/gpu/drm/sun4i/sun50i_afbc.h           |  87 +++++
 drivers/gpu/drm/sun4i/sun50i_fmt.c            |  99 +++++
 drivers/gpu/drm/sun4i/sun50i_fmt.h            |  33 ++
 drivers/gpu/drm/sun4i/sun8i_csc.c             | 341 +++++++++++++++---
 drivers/gpu/drm/sun4i/sun8i_csc.h             |  20 +-
 drivers/gpu/drm/sun4i/sun8i_mixer.c           | 229 +++++++++---
 drivers/gpu/drm/sun4i/sun8i_mixer.h           |  31 +-
 drivers/gpu/drm/sun4i/sun8i_ui_layer.c        |  41 ++-
 drivers/gpu/drm/sun4i/sun8i_ui_scaler.c       |   2 +-
 drivers/gpu/drm/sun4i/sun8i_vi_layer.c        | 134 +++++--
 drivers/gpu/drm/sun4i/sun8i_vi_scaler.c       | 115 ++++--
 drivers/gpu/drm/sun4i/sun8i_vi_scaler.h       |   2 +-
 drivers/gpu/drm/sun4i/sunxi_engine.h          |  34 ++
 20 files changed, 1271 insertions(+), 207 deletions(-)
 create mode 100644 drivers/gpu/drm/sun4i/sun50i_afbc.c
 create mode 100644 drivers/gpu/drm/sun4i/sun50i_afbc.h
 create mode 100644 drivers/gpu/drm/sun4i/sun50i_fmt.c
 create mode 100644 drivers/gpu/drm/sun4i/sun50i_fmt.h

-- 
2.46.1


             reply	other threads:[~2024-09-21  9:52 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-21  9:45 Ryan Walklin [this message]
2024-09-21  9:45 ` [PATCH v4 01/26] drm: sun4i: de2/de3: Change CSC argument Ryan Walklin
2024-09-21  9:45 ` [PATCH v4 02/26] drm: sun4i: de2/de3: Merge CSC functions into one Ryan Walklin
2024-09-21  9:45 ` [PATCH v4 03/26] drm: sun4i: de2/de3: call csc setup also for UI layer Ryan Walklin
2024-09-21  9:45 ` [PATCH v4 04/26] drm: sun4i: de2: Initialize layer fields earlier Ryan Walklin
2024-09-21  9:45 ` [PATCH v4 05/26] drm: sun4i: de3: Add YUV formatter module Ryan Walklin
2024-09-21  9:45 ` [PATCH v4 06/26] drm: sun4i: de3: add format enumeration function to engine Ryan Walklin
2024-09-21  9:45 ` [PATCH v4 07/26] drm: sun4i: de3: add formatter flag to mixer config Ryan Walklin
2024-09-21  9:45 ` [PATCH v4 08/26] drm: sun4i: de3: add YUV support to the DE3 mixer Ryan Walklin
2024-09-21  9:45 ` [PATCH v4 09/26] drm: sun4i: de3: pass engine reference to ccsc setup function Ryan Walklin
2024-09-21  9:45 ` [PATCH v4 10/26] drm: sun4i: de3: add YUV support to the color space correction module Ryan Walklin
2024-09-21  9:46 ` [PATCH v4 11/26] drm: sun4i: de3: add YUV support to the TCON Ryan Walklin
2024-09-21  9:46 ` [PATCH v4 12/26] drm: sun4i: support YUV formats in VI scaler Ryan Walklin
2024-09-21  9:46 ` [PATCH v4 13/26] drm: sun4i: de2/de3: add mixer version enum Ryan Walklin
2024-09-21  9:46 ` [PATCH v4 14/26] drm: sun4i: de2/de3: refactor mixer initialisation Ryan Walklin
2024-09-21  9:46 ` [PATCH v4 15/26] drm: sun4i: vi_scaler refactor vi_scaler enablement Ryan Walklin
2024-09-21  9:46 ` [PATCH v4 16/26] drm: sun4i: de2/de3: add generic blender register reference function Ryan Walklin
2024-09-21  9:46 ` [PATCH v4 17/26] drm: sun4i: de2/de3: use generic register reference function for layer configuration Ryan Walklin
2024-09-21  9:46 ` [PATCH v4 18/26] drm: sun4i: de3: Implement AFBC support Ryan Walklin
2024-09-25  8:23   ` Dan Carpenter
2024-09-21  9:46 ` [PATCH v4 19/26] dt-bindings: allwinner: add H616 DE33 bus binding Ryan Walklin
2024-09-22 20:52   ` Krzysztof Kozlowski
2024-09-21  9:46 ` [PATCH v4 20/26] dt-bindings: allwinner: add H616 DE33 clock binding Ryan Walklin
2024-09-22 20:52   ` Krzysztof Kozlowski
2024-09-21  9:46 ` [PATCH v4 21/26] dt-bindings: allwinner: add H616 DE33 mixer binding Ryan Walklin
2024-09-22 20:52   ` Krzysztof Kozlowski
2024-09-29  8:52     ` Ryan Walklin
2024-09-21  9:46 ` [PATCH v4 22/26] clk: sunxi-ng: ccu: add Display Engine 3.3 (DE33) support Ryan Walklin
2024-09-21  9:46 ` [PATCH v4 23/26] drm: sun4i: de33: mixer: " Ryan Walklin
2024-09-21  9:46 ` [PATCH v4 24/26] drm: sun4i: de33: vi_scaler: " Ryan Walklin
2024-09-21  9:46 ` [PATCH v4 25/26] drm: sun4i: de33: fmt: " Ryan Walklin
2024-09-21  9:46 ` [PATCH v4 26/26] drm: sun4i: de33: csc: " Ryan Walklin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240921095153.213568-1-ryan@testtoast.com \
    --to=ryan@testtoast.com \
    --cc=airlied@gmail.com \
    --cc=andre.przywara@arm.com \
    --cc=conor+dt@kernel.org \
    --cc=contact@jookia.org \
    --cc=daniel@ffwll.ch \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jernej.skrabec@gmail.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-sunxi@lists.linux.dev \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=macroalpha82@gmail.com \
    --cc=mripard@kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=robh@kernel.org \
    --cc=samuel@sholland.org \
    --cc=sboyd@kernel.org \
    --cc=tzimmermann@suse.de \
    --cc=wens@csie.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).