linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/30] drm/sun4i: Refactor layer code for proper DE33 support
@ 2025-10-12 19:23 Jernej Skrabec
  2025-10-12 19:23 ` [PATCH 01/30] drm/sun4i: mixer: Fix up DE33 channel macros Jernej Skrabec
                   ` (30 more replies)
  0 siblings, 31 replies; 66+ messages in thread
From: Jernej Skrabec @ 2025-10-12 19:23 UTC (permalink / raw)
  To: mripard, wens
  Cc: maarten.lankhorst, tzimmermann, airlied, simona, samuel,
	dri-devel, linux-arm-kernel, linux-sunxi, linux-kernel,
	Jernej Skrabec

Current DE33 support in sun4i-drm driver is based on my PoC code. It was
written with *a lot* of hacks, because it was never meant to be upstreamed.
Fortunately, DT parts were never merged which give us a chance to do it
right.

This is first of three series with proper DE33 support for H616 SoC. It's
the longest, since it prepares terrain for new drivers in remaining series.
Point of this work is to completely decouple mixer and layer code. Till
DE3, mixer and layers were intimately connected. However, from DE33
onwards, this is no longer the case. DE33 and upcoming DE35 planes are
shared comodity between all mixers and can be assigned in any way driver
(or user) prefers. This requires planes code to be completely independent
from mixer. The only exception is mixer clock frequency which is used in
VI scaler, but in that case mixer pointer is obtained through currently
assigned CRTC.

Second series will introduce separate driver for DE33 planes and adjust
mixer code to new DT bindings. Third series will introduce TCON(-TOP)
adjustments, HDMI PHY and finally, DT updates for several boards.

Current WIP code for remaining two series can be found at [1]. Code has
been tested on Tanix TX6, which has DE3, for any regressions and on Myir
MYD-YT507H board [2], which has DE33, with HDMI and LVDS panel outputs
running simultaneously and independently. This confirms that plane code
is properly decoupled.

Please review.

Best regards,
Jernej

[1] https://github.com/jernejsk/linux-1/commits/sun4i-drm-refactor/
[2] https://github.com/jernejsk/linux-1/commits/okt507c-v3

Jernej Skrabec (30):
  drm/sun4i: mixer: Fix up DE33 channel macros
  drm/sun4i: mixer: Remove ccsc cfg for >= DE3
  drm/sun4i: de2: Initialize layer fields earlier
  drm/sun4i: ui_layer: Move check from update to check callback
  drm/sun4i: vi_layer: Move check from update to check callback
  drm/sun4i: layers: Make atomic commit functions void
  drm/sun4i: Move blender config from layers to mixer
  drm/sun4i: ui layer: Write attributes in one go
  drm/sun4i: vi layer: Write attributes in one go
  drm/sun4i: mixer: Remove setting layer enable bit
  drm/sun4i: de2/de3: Simplify CSC config interface
  drm/sun4i: csc: Simplify arguments with taking plane state
  drm/sun4i: de2/de3: Move plane type determination to mixer
  drm/sun4i: ui_layer: Change index meaning
  drm/sun4i: layer: move num of planes calc out of layer code
  drm/sun4i: ui_layer: use layer struct instead of multiple args
  drm/sun4i: vi_layer: use layer struct instead of multiple args
  drm/sun4i: ui_scaler: use layer instead of mixer for args
  drm/sun4i: vi_scaler: use layer instead of mixer for args
  drm/sun4i: layers: Make regmap for layers configurable
  drm/sun4i: csc: use layer arg instead of mixer
  drm/sun4i: layers: add physical index arg
  drm/sun4i: vi_scaler: Update DE33 base calculation
  drm/sun4i: mixer: Convert heuristics to quirk
  drm/sun4i: ui_scaler: drop sanity checks
  drm/sun4i: mixer: Add quirk for number of VI scalers
  drm/sun4i: mixer: split out layer config
  drm/sun4i: layer: replace mixer with layer struct
  drm/sun4i: vi_scaler: Find mixer from crtc
  drm/sun4i: Nuke mixer pointer from layer code

 drivers/gpu/drm/sun4i/sun8i_csc.c       | 113 ++++++-----
 drivers/gpu/drm/sun4i/sun8i_csc.h       |  16 +-
 drivers/gpu/drm/sun4i/sun8i_mixer.c     | 217 +++++++++++++--------
 drivers/gpu/drm/sun4i/sun8i_mixer.h     |  64 ++++---
 drivers/gpu/drm/sun4i/sun8i_ui_layer.c  | 183 +++++++-----------
 drivers/gpu/drm/sun4i/sun8i_ui_layer.h  |   7 +-
 drivers/gpu/drm/sun4i/sun8i_ui_scaler.c |  44 ++---
 drivers/gpu/drm/sun4i/sun8i_ui_scaler.h |   4 +-
 drivers/gpu/drm/sun4i/sun8i_vi_layer.c  | 244 +++++++++---------------
 drivers/gpu/drm/sun4i/sun8i_vi_layer.h  |   7 +-
 drivers/gpu/drm/sun4i/sun8i_vi_scaler.c |  51 ++---
 drivers/gpu/drm/sun4i/sun8i_vi_scaler.h |   6 +-
 12 files changed, 474 insertions(+), 482 deletions(-)

-- 
2.51.0



^ permalink raw reply	[flat|nested] 66+ messages in thread

end of thread, other threads:[~2025-11-04 16:50 UTC | newest]

Thread overview: 66+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-12 19:23 [PATCH 00/30] drm/sun4i: Refactor layer code for proper DE33 support Jernej Skrabec
2025-10-12 19:23 ` [PATCH 01/30] drm/sun4i: mixer: Fix up DE33 channel macros Jernej Skrabec
2025-10-19  7:41   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 02/30] drm/sun4i: mixer: Remove ccsc cfg for >= DE3 Jernej Skrabec
2025-10-19  7:42   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 03/30] drm/sun4i: de2: Initialize layer fields earlier Jernej Skrabec
2025-10-19  7:44   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 04/30] drm/sun4i: ui_layer: Move check from update to check callback Jernej Skrabec
2025-10-19  8:24   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 05/30] drm/sun4i: vi_layer: " Jernej Skrabec
2025-10-19  8:25   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 06/30] drm/sun4i: layers: Make atomic commit functions void Jernej Skrabec
2025-10-19  8:51   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 07/30] drm/sun4i: Move blender config from layers to mixer Jernej Skrabec
2025-10-27 16:00   ` Chen-Yu Tsai
2025-10-27 18:11     ` Jernej Škrabec
2025-10-12 19:23 ` [PATCH 08/30] drm/sun4i: ui layer: Write attributes in one go Jernej Skrabec
2025-10-27 16:04   ` Chen-Yu Tsai
2025-10-27 18:13     ` Jernej Škrabec
2025-10-27 18:16       ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 09/30] drm/sun4i: vi " Jernej Skrabec
2025-10-27 16:24   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 10/30] drm/sun4i: mixer: Remove setting layer enable bit Jernej Skrabec
2025-10-27 16:28   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 11/30] drm/sun4i: de2/de3: Simplify CSC config interface Jernej Skrabec
2025-10-27 16:49   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 12/30] drm/sun4i: csc: Simplify arguments with taking plane state Jernej Skrabec
2025-10-27 16:51   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 13/30] drm/sun4i: de2/de3: Move plane type determination to mixer Jernej Skrabec
2025-10-27 17:14   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 14/30] drm/sun4i: ui_layer: Change index meaning Jernej Skrabec
2025-10-27 16:59   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 15/30] drm/sun4i: layer: move num of planes calc out of layer code Jernej Skrabec
2025-10-27 16:55   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 16/30] drm/sun4i: ui_layer: use layer struct instead of multiple args Jernej Skrabec
2025-10-27 17:43   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 17/30] drm/sun4i: vi_layer: " Jernej Skrabec
2025-10-27 17:45   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 18/30] drm/sun4i: ui_scaler: use layer instead of mixer for args Jernej Skrabec
2025-10-27 17:49   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 19/30] drm/sun4i: vi_scaler: " Jernej Skrabec
2025-10-27 17:50   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 20/30] drm/sun4i: layers: Make regmap for layers configurable Jernej Skrabec
2025-11-03 15:14   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 21/30] drm/sun4i: csc: use layer arg instead of mixer Jernej Skrabec
2025-11-03 14:56   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 22/30] drm/sun4i: layers: add physical index arg Jernej Skrabec
2025-11-03 15:11   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 23/30] drm/sun4i: vi_scaler: Update DE33 base calculation Jernej Skrabec
2025-11-03 17:00   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 24/30] drm/sun4i: mixer: Convert heuristics to quirk Jernej Skrabec
2025-11-03 17:05   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 25/30] drm/sun4i: ui_scaler: drop sanity checks Jernej Skrabec
2025-11-03 17:05   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 26/30] drm/sun4i: mixer: Add quirk for number of VI scalers Jernej Skrabec
2025-11-03 17:11   ` Chen-Yu Tsai
2025-11-04 16:50     ` Jernej Škrabec
2025-10-12 19:23 ` [PATCH 27/30] drm/sun4i: mixer: split out layer config Jernej Skrabec
2025-11-03 17:20   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 28/30] drm/sun4i: layer: replace mixer with layer struct Jernej Skrabec
2025-11-03 17:31   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 29/30] drm/sun4i: vi_scaler: Find mixer from crtc Jernej Skrabec
2025-11-03 17:33   ` Chen-Yu Tsai
2025-10-12 19:23 ` [PATCH 30/30] drm/sun4i: Nuke mixer pointer from layer code Jernej Skrabec
2025-11-03 17:34   ` Chen-Yu Tsai
2025-10-31  7:50 ` [PATCH 00/30] drm/sun4i: Refactor layer code for proper DE33 support Ryan Walklin

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