linux-arm-kernel.lists.infradead.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 RFC 0/8] drm: sunxi: support Allwinner Display Engine 3 IP block for H616/H700
Date: Fri,  7 Jun 2024 22:59:56 +1200	[thread overview]
Message-ID: <20240607110227.49848-1-ryan@testtoast.com> (raw)

Hi,

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.

The Anbernic RG35XX (-2024, -Plus -H, -SP) variants are handheld gaming devices based on the H700 SoC. They all have a 3.5" RGB LCD display (WL-355608-A8) with an NV3052 (or clone) RAM-less driver IC, with a patch currently in drm-misc-next [1], as well as a DesignWare HDMI 2.0 output. 

A linked series of patches is intended to add support for the RG35XX LCD display, but will do so in several steps, touching various subsystems. This patch set adds DE33 support:

1. Refactor the existing DE2/DE3 code to support mulitple colour formats.
2. Add YUV420 colour format support in the DE3 driver.
3. Add Arm Frame Buffer Compression (AFBC) 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.
4. Extend the DE2/3 driver for the DE33.

A subsequent patch set will enable H616 and RG35XX support:

5. Add DT bindings and clock support for the additional LCD timing controller.
6. Add H616 DT changes to enable a required SRAM allocation, display engine, timing controllers (TCONs) and RGB and LVDS pins to the H616 DTSI.
7. Add the required DT nodes for the DE, TCON and LCD panel to the RG35XX device tree.

Further patchsets to enable HDMI support for this device (and the other H616 and H618 boards like the Orange Pi Zero 3) is planned, as is support for the IOMMU and video engine, and u-boot support for the panel and display pipeline.

This DE and forthcoming LCD and HDMI patches are a refactoring of work by Jernej Skrabec, currently out-of-tree [2]. 

Regards,

Ryan

[1] https://lore.kernel.org/dri-devel/171740437725.4156184.17662886246928360602.b4-ty@linaro.org/
[2] https://github.com/jernejsk/linux-1/tree/okt507c

Jernej Skrabec (4):
  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

Ryan Walklin (4):
  dt-bindings: bus: allwinner: add H616 DE33 bindings
  drm/sun4i: de3: Add support for YUV420 output
  drm/sun4i: de3: Implement AFBC support
  drm: sun4i: add Display Engine 3.3 (DE33) support

 .../bus/allwinner,sun50i-a64-de2.yaml         |   1 +
 .../clock/allwinner,sun8i-a83t-de2-clk.yaml   |   1 +
 .../allwinner,sun8i-a83t-de2-mixer.yaml       |   1 +
 drivers/clk/sunxi-ng/Makefile                 |   2 +-
 drivers/clk/sunxi-ng/sun8i-de33.c             | 185 ++++++++++
 drivers/clk/sunxi-ng/sun8i-de33.h             |  19 +
 drivers/gpu/drm/drm_atomic_state_helper.c     |   7 +
 drivers/gpu/drm/sun4i/Makefile                |   3 +-
 drivers/gpu/drm/sun4i/sun4i_tcon.c            |  30 +-
 drivers/gpu/drm/sun4i/sun4i_tcon.h            |   1 +
 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           | 253 ++++++++++---
 drivers/gpu/drm/sun4i/sun8i_mixer.h           |  33 +-
 drivers/gpu/drm/sun4i/sun8i_ui_layer.c        |  49 ++-
 drivers/gpu/drm/sun4i/sun8i_ui_scaler.c       |   2 +-
 drivers/gpu/drm/sun4i/sun8i_vi_layer.c        | 141 +++++---
 drivers/gpu/drm/sun4i/sun8i_vi_scaler.c       | 115 ++++--
 drivers/gpu/drm/sun4i/sun8i_vi_scaler.h       |   3 +-
 drivers/gpu/drm/sun4i/sunxi_engine.h          |  34 ++
 24 files changed, 1501 insertions(+), 209 deletions(-)
 create mode 100644 drivers/clk/sunxi-ng/sun8i-de33.c
 create mode 100644 drivers/clk/sunxi-ng/sun8i-de33.h
 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.45.2


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

             reply	other threads:[~2024-06-07 11:03 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-07 10:59 Ryan Walklin [this message]
2024-06-07 10:59 ` [PATCH RFC 1/8] dt-bindings: bus: allwinner: add H616 DE33 bindings Ryan Walklin
2024-06-07 14:23   ` Conor Dooley
2024-06-09  3:19     ` Ryan Walklin
2024-06-10 16:32       ` Conor Dooley
2024-06-12  8:27         ` Ryan Walklin
2024-06-07 10:59 ` [PATCH RFC 2/8] drm: sun4i: de2/de3: Change CSC argument Ryan Walklin
2024-06-07 10:59 ` [PATCH RFC 3/8] drm/sun4i: de2/de3: Merge CSC functions into one Ryan Walklin
2024-06-07 11:00 ` [PATCH RFC 4/8] drm/sun4i: de2/de3: call csc setup also for UI layer Ryan Walklin
2024-06-07 11:00 ` [PATCH RFC 5/8] drm/sun4i: de2: Initialize layer fields earlier Ryan Walklin
2024-06-07 11:00 ` [PATCH RFC 6/8] drm/sun4i: de3: Add support for YUV420 output Ryan Walklin
2024-06-07 11:00 ` [PATCH RFC 7/8] drm/sun4i: de3: Implement AFBC support Ryan Walklin
2024-06-07 14:32   ` Andre Przywara
2024-06-09  3:24     ` Ryan Walklin
2024-06-07 11:00 ` [PATCH RFC 8/8] drm: sun4i: add Display Engine 3.3 (DE33) support Ryan Walklin
2024-06-18  0:01   ` Andre Przywara

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=20240607110227.49848-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).