[PATCH 23/23] drm: sun4i: de33: csc: add Display Engine 3.3 (DE33) support

2024-06-20 Thread Ryan Walklin
From: Jernej Skrabec Like earlier DE versions, the DE33 has a CSC (Color Space Correction) module. which provides color space conversion between BT2020/BT709, and dynamic range conversion between SDR/ST2084/HLG. Add support for the DE33. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan

[PATCH 22/23] drm: sun4i: de33: fmt: add Display Engine 3.3 (DE33) support

2024-06-20 Thread Ryan Walklin
. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun50i_fmt.c | 21 +++-- drivers/gpu/drm/sun4i/sun50i_fmt.h | 1 + 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun50i_fmt.c b/drivers/gpu/drm/sun4i

[PATCH 21/23] drm: sun4i: de33: vi_scaler: add Display Engine 3.3 (DE33) support

2024-06-20 Thread Ryan Walklin
From: Jernej Skrabec The vi_scaler appears to be used in preference to the ui_scaler module for hardware video scaling in the DE33. Enable support for this scaler. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_ui_layer.c | 19

[PATCH 20/23] drm: sun4i: de33: mixer: add Display Engine 3.3 (DE33) support

2024-06-20 Thread Ryan Walklin
ARM Frame Buffer Compression support - YUV420 input support Extend the mixer to support the DE33. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_mixer.c | 109 drivers/gpu/drm/sun4i/sun8i_mixer.h | 16 +++- 2 files changed

[PATCH 19/23] clk: sunxi-ng: ccu: add Display Engine 3.3 (DE33) support

2024-06-20 Thread Ryan Walklin
the out-of-tree driver. Add the required clock description struct and compatible string to the DE2 driver. Signed-off-by: Ryan Walklin --- drivers/clk/sunxi-ng/ccu-sun8i-de2.c | 25 + 1 file changed, 25 insertions(+) diff --git a/drivers/clk/sunxi-ng/ccu-sun8i-de2.c b

[PATCH 18/23] dt-bindings: allwinner: add H616 DE33 bus, clock and display bindings

2024-06-20 Thread Ryan Walklin
The Allwinner H616 and variants have a new display engine revision (DE33). Add display engine bus, clock and mixer bindings for the DE33. Signed-off-by: Ryan Walklin --- .../devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml | 7 --- .../bindings/clock/allwinner,sun8i-a83t-de2-clk.yaml

[PATCH 17/23] drm: sun4i: de3: Implement AFBC support

2024-06-20 Thread Ryan Walklin
haven't observed any SoC with such feature. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/Makefile | 2 +- drivers/gpu/drm/sun4i/sun50i_afbc.c| 250 + drivers/gpu/drm/sun4i/sun50i_afbc.h| 87 + drivers/gpu

[PATCH 16/23] drm: sun4i: de2/de3: make blender register references generic

2024-06-20 Thread Ryan Walklin
From: Jernej Skrabec The DE2 and DE3 engines have a single register range, whereas the DE33 separates these out into top and display groups. Prepare for this by adding a function to look these up based on the DE type. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu

[PATCH 15/23] drm: sun4i: vi_scaler refactor vi_scaler enablement

2024-06-20 Thread Ryan Walklin
with a vi_scaler_disable() function. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 3 +-- drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 21 +++-- drivers/gpu/drm/sun4i/sun8i_vi_scaler.h | 2 +- 3 files changed, 13 insertions(+), 13 deletions

[PATCH 14/23] drm: sun4i: de2/de3: refactor mixer initialisation

2024-06-20 Thread Ryan Walklin
From: Jernej Skrabec Now that the DE variant can be selected by enum, take the oppportunity to factor out some common initialisation code to a separate function. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_mixer.c | 69

[PATCH 13/23] drm: sun4i: de2/de3: add mixer version enum

2024-06-20 Thread Ryan Walklin
-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_csc.c | 2 +- drivers/gpu/drm/sun4i/sun8i_mixer.c | 14 -- drivers/gpu/drm/sun4i/sun8i_mixer.h | 11 --- drivers/gpu/drm/sun4i/sun8i_ui_scaler.c | 2 +- drivers/gpu/drm/sun4i

[PATCH 12/23] drm: sun4i: support YUV formats in VI scaler

2024-06-20 Thread Ryan Walklin
From: Jernej Skrabec Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_vi_scaler.c | 85 + 1 file changed, 58 insertions(+), 27 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun8i_vi_scaler.c b/drivers/gpu/drm/sun4i

[PATCH 11/23] drm: sun4i: de3: add YUV support to the TCON

2024-06-20 Thread Ryan Walklin
From: Jernej Skrabec Account for U/V channel subsampling by reducing the dot clock and resolution with a divider in the DE3 timing controller if a YUV format is selected. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun4i_tcon.c | 26

[PATCH 10/23] drm: sun4i: de3: add YUV support to the color space correction module

2024-06-20 Thread Ryan Walklin
From: Jernej Skrabec Add coefficients and support for YUV formats to the display engine colorspace and dynamic range correction submodule. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_csc.c | 164 +- 1 file changed, 162

[PATCH 09/23] drm: sun4i: de3: pass engine reference to ccsc setup function

2024-06-20 Thread Ryan Walklin
. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_csc.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun8i_csc.c b/drivers/gpu/drm/sun4i/sun8i_csc.c index 68d955c63b05b..8a336ccb27d33 100644 --- a/drivers/gpu

[PATCH 08/23] drm: sun4i: de3: add YUV support to the DE3 mixer

2024-06-20 Thread Ryan Walklin
variables. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_mixer.c | 55 ++-- drivers/gpu/drm/sun4i/sunxi_engine.h | 5 +++ 2 files changed, 56 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b

[PATCH 07/23] drm: sun4i: de3: add formatter flag to mixer config

2024-06-20 Thread Ryan Walklin
-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_mixer.c | 1 + drivers/gpu/drm/sun4i/sun8i_mixer.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.c b/drivers/gpu/drm/sun4i/sun8i_mixer.c index 01382860aaeea

[PATCH 00/23] drm: sun4i: add Display Engine 3.3 (DE33) support

2024-06-20 Thread Ryan Walklin
: de33: csc: add Display Engine 3.3 (DE33) support Ryan Walklin (2): dt-bindings: allwinner: add H616 DE33 bus, clock and display bindings clk: sunxi-ng: ccu: add Display Engine 3.3 (DE33) support .../bus/allwinner,sun50i-a64-de2.yaml | 7 +- .../clock/allwinner,sun8i-a83t-de2

[PATCH 06/23] drm: sun4i: de3: add format enumeration function to engine

2024-06-20 Thread Ryan Walklin
From: Jernej Skrabec The DE3 display engine supports YUV formats in addition to RGB. Add an optional format enumeration function to the engine. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sunxi_engine.h | 29 1 file

[PATCH 05/23] drm: sun4i: de3: Add YUV formatter module

2024-06-20 Thread Ryan Walklin
From: Jernej Skrabec The display engine formatter (FMT) module is present in the DE3 engine and provides YUV444 to YUV422/YUV420 conversion, format re-mapping and color depth conversion. Add support for this module. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu

[PATCH 04/23] drm: sun4i: de2: Initialize layer fields earlier

2024-06-20 Thread Ryan Walklin
From: Jernej Skrabec drm_universal_plane_init() can already call some callbacks, like format_mod_supported, during initialization. Because of that, fields should be initialized beforehand. Signed-off-by: Jernej Skrabec Co-developed-by: Ryan Walklin Signed-off-by: Ryan Walklin --- drivers

[PATCH 03/23] drm: sun4i: de2/de3: call csc setup also for UI layer

2024-06-20 Thread Ryan Walklin
cases, add a call to CSC setup function also in UI layer code. For DE2, this will be a no-op, but it will allow DE3 to output signal in multiple formats. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_csc.c | 8 +--- drivers/gpu/drm/sun4i

[PATCH 02/23] drm: sun4i: de2/de3: Merge CSC functions into one

2024-06-20 Thread Ryan Walklin
will be supported in later commits. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_csc.c | 89 ++ drivers/gpu/drm/sun4i/sun8i_csc.h | 9 ++- drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 11 +--- 3 files changed, 40 insertions(+), 69

[PATCH 01/23] drm: sun4i: de2/de3: Change CSC argument

2024-06-20 Thread Ryan Walklin
make any functional change. Signed-off-by: Jernej Skrabec Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_csc.c | 22 +++--- drivers/gpu/drm/sun4i/sun8i_csc.h | 10 +- drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 16 3 files changed, 24

Re: [PATCH RFC 1/8] dt-bindings: bus: allwinner: add H616 DE33 bindings

2024-06-12 Thread Ryan Walklin
> On 11 Jun 2024, at 4:32 AM, Conor Dooley wrote: > Ahh, I didn't notice that " drm: sun4i: add Display Engine 3.3 (DE33) > support" had a clk driver. > That needs to go into a patch of its own. Thanks, can certainly split that out. Regards, Ryan

Re: [PATCH RFC 7/8] drm/sun4i: de3: Implement AFBC support

2024-06-08 Thread Ryan Walklin
On Sat, 8 Jun 2024, at 2:32 AM, Andre Przywara wrote: >> Signed-off-by: Jernej Skrabec > This signature suggests that it's indeed Jernej's patch, so it should > have his authorship, as in the other patches, indicated by a line starting > with "From:" before the commit message. Thanks Andre, no

Re: [PATCH RFC 1/8] dt-bindings: bus: allwinner: add H616 DE33 bindings

2024-06-08 Thread Ryan Walklin
On Sat, 8 Jun 2024, at 2:23 AM, Conor Dooley wrote: Thanks for the review! >> --- a/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml >> +++ b/Documentation/devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml >> @@ -25,6 +25,7 @@ properties: >>- const:

[PATCH RFC 8/8] drm: sun4i: add Display Engine 3.3 (DE33) support

2024-06-07 Thread Ryan Walklin
Compression support - YUV420 input support Extend the driver to support the DE33. Signed-off-by: Jernej Skrabec Co-developed-by: Ryan Walklin Signed-off-by: Ryan Walklin --- drivers/clk/sunxi-ng/Makefile | 2 +- drivers/clk/sunxi-ng/sun8i-de33.c | 185 + drivers

[PATCH RFC 7/8] drm/sun4i: de3: Implement AFBC support

2024-06-07 Thread Ryan Walklin
-by: Jernej Skrabec Co-developed-by: Ryan Walklin Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/Makefile | 2 +- drivers/gpu/drm/sun4i/sun50i_afbc.c| 240 + drivers/gpu/drm/sun4i/sun50i_afbc.h| 87 + drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 84

[PATCH RFC 6/8] drm/sun4i: de3: Add support for YUV420 output

2024-06-07 Thread Ryan Walklin
Signed-off-by: Jernej Skrabec Co-developed-by: Ryan Walklin Signed-off-by: Ryan Walklin --- drivers/gpu/drm/drm_atomic_state_helper.c | 7 + drivers/gpu/drm/sun4i/Makefile| 3 +- drivers/gpu/drm/sun4i/sun4i_tcon.c| 26 +++- drivers/gpu/drm/sun4i/sun50i_fmt.c

[PATCH RFC 5/8] drm/sun4i: de2: Initialize layer fields earlier

2024-06-07 Thread Ryan Walklin
From: Jernej Skrabec drm_universal_plane_init() can already call some callbacks, like format_mod_supported, during initialization. Because of that, fields should be initialized beforehand. Signed-off-by: Jernej Skrabec Co-developed-by: Ryan Walklin Signed-off-by: Ryan Walklin --- drivers

[PATCH RFC 4/8] drm/sun4i: de2/de3: call csc setup also for UI layer

2024-06-07 Thread Ryan Walklin
cases, add a call to CSC setup function also in UI layer code. For DE2, this will be a no-op, but it will allow DE3 to output signal in multiple formats. Signed-off-by: Jernej Skrabec Co-developed-by: Ryan Walklin Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_csc.c | 8

[PATCH RFC 3/8] drm/sun4i: de2/de3: Merge CSC functions into one

2024-06-07 Thread Ryan Walklin
will be supported in later commits. Signed-off-by: Jernej Skrabec Co-developed-by: Ryan Walklin Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_csc.c | 89 ++ drivers/gpu/drm/sun4i/sun8i_csc.h | 9 ++- drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 11 +--- 3

[PATCH RFC 2/8] drm: sun4i: de2/de3: Change CSC argument

2024-06-07 Thread Ryan Walklin
make any functional change. Signed-off-by: Jernej Skrabec Co-developed-by: Ryan Walklin Signed-off-by: Ryan Walklin --- drivers/gpu/drm/sun4i/sun8i_csc.c | 22 +++--- drivers/gpu/drm/sun4i/sun8i_csc.h | 10 +- drivers/gpu/drm/sun4i/sun8i_vi_layer.c | 16

[PATCH RFC 1/8] dt-bindings: bus: allwinner: add H616 DE33 bindings

2024-06-07 Thread Ryan Walklin
The Allwinner H616 and variants have a new display engine revision (DE33). Add display engine bus, clock and mixer bindings for the DE33. Signed-off-by: Ryan Walklin --- .../devicetree/bindings/bus/allwinner,sun50i-a64-de2.yaml| 1 + .../devicetree/bindings/clock/allwinner,sun8i-a83t

[PATCH RFC 0/8] drm: sunxi: support Allwinner Display Engine 3 IP block for H616/H700

2024-06-07 Thread Ryan Walklin
devel/171740437725.4156184.17662886246928360602.b4...@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

Re: [PATCH v3 1/2] dt-bindings: display: panel: Add WL-355608-A8 panel

2024-06-06 Thread Ryan Walklin
On Thu, 6 Jun 2024, at 9:32 PM, Maxime Ripard wrote: Hi Maxime, thanks for reviewing. > Where has this consensus been found? As Neil notes Conor suggested it [1], and we did consider Hironori's suggestion [2] of using anbernic as the vendor prefix, although my (not strong) feeling at the time

[PATCH v3 2/2] drm: panel: nv3052c: Add WL-355608-A8 panel

2024-05-30 Thread Ryan Walklin
mings: | Active | FP | Sync | BP | Total ---||--|--|--|--- Horizontal | 640 | 64 | 20 | 46 | 770 Vertical | 480 | 21 | 4 | 15 | 520 Signed-off-by: Ryan Walklin Co-developed-by: Hironori KIKUCHI Signed-off-by: Hironori KIKUCHI Reviewed-by:

[PATCH v3 1/2] dt-bindings: display: panel: Add WL-355608-A8 panel

2024-05-30 Thread Ryan Walklin
The WL-355608-A8 is a 3.5" 640x480@60Hz RGB LCD display used in a number of handheld gaming devices made by Anbernic. By consensus a vendor prefix is not provided as the panel OEM is unknown. Add a device tree binding for the panel. Signed-off-by: Ryan Walklin Reviewed-by: Conor D

[PATCH v3 0/2] Add WL-355608-A8 panel

2024-05-30 Thread Ryan Walklin
devices. This patch adds a device tree binding, and support for the display timings and init sequence to the NV3052C SPI/RGB driver. Regards, Ryan Ryan Walklin (2): dt-bindings: display: panel: Add WL-355608-A8 panel drm: panel: nv3052c: Add WL-355608-A8 panel .../bindings/display/panel/wl

Re: [PATCH v2 1/2] dt-bindings: display: panel: Add WL-355608-A8 panel

2024-05-30 Thread Ryan Walklin
On Fri, 31 May 2024, at 4:03 AM, Conor Dooley wrote: > You accidentally added a tab here: > endpoint { Apologies, will fix along with the other redundant label for v3. Thanks for the review! Ryan

[PATCH v2 2/2] drm: panel: nv3052c: Add WL-355608-A8 panel

2024-05-30 Thread Ryan Walklin
mings: | Active | FP | Sync | BP | Total ---||--|--|--|--- Horizontal | 640 | 64 | 20 | 46 | 770 Vertical | 480 | 21 | 4 | 15 | 520 Signed-off-by: Ryan Walklin Co-developed-by: Hironori KIKUCHI Signed-off-by: Hironori KIKUCHI Reviewed-by:

[PATCH v2 1/2] dt-bindings: display: panel: Add WL-355608-A8 panel

2024-05-30 Thread Ryan Walklin
The WL-355608-A8 is a 3.5" 640x480@60Hz RGB LCD display used in a number of handheld gaming devices made by Anbernic. By consensus a vendor prefix is not provided as the panel OEM is unknown. Add a device tree binding for the panel. Signed-off-by: Ryan Walklin --- Changelog v1..v2: - Co

[PATCH v2 0/2] Add WL-355608-A8 panel

2024-05-30 Thread Ryan Walklin
adds a device tree binding, and support for the display timings and init sequence to the NV3052C SPI/RGB driver. Regards, Ryan Ryan Walklin (2): dt-bindings: display: panel: Add WL-355608-A8 panel drm: panel: nv3052c: Add WL-355608-A8 panel .../bindings/display/panel/wl-355608-a8.yaml

Re: [PATCH 2/2] drm: panel: nv3052c: Add WL-355608-A8 panel

2024-05-27 Thread Ryan Walklin
On Tue, 28 May 2024, at 10:16 AM, John Watts wrote: > This all looks good to me, though I understand you may need to change the > compatible. Please CC me if this happens so I can re-review. I think the consensus is to accept an absent vendor-prefix rather than use the device manufacturer, so I

Re: [PATCH 1/2] dt-bindings: display: panel: Add WL-355608-A8 panel

2024-05-25 Thread Ryan Walklin
On Sun, 26 May 2024, at 10:49 AM, きくちゃんさん wrote: > Hi Ryan, > > How about to use "anbernic,rg35xx-panel" ? > It's not generic though, some other drivers use similar strings already. Could do, although I think it is used for more than one of the Anbernic devices, so "anbernic,wl-355608-a8" might

Re: [PATCH 1/2] dt-bindings: display: panel: Add WL-355608-A8 panel

2024-05-25 Thread Ryan Walklin
On Sun, 26 May 2024, at 3:22 AM, Conor Dooley wrote: >> >> Thanks, I don't actually know the vendor, would it be acceptable to just use >> "wl"? > > You mean, "wl,355608-a8"? I did a wee bit of googling of the thing, and > yeah, there's nothing that a surface level search turns up for it - >

Re: [PATCH 1/2] dt-bindings: display: panel: Add WL-355608-A8 panel

2024-05-24 Thread Ryan Walklin
On Sat, 25 May 2024, at 7:10 AM, Conor Dooley wrote: Thanks for the review! >> + >> +properties: >> + compatible: >> +const: wl-355608-a8 > > You're missing a vendor prefix here. And when you add it, update the > filename to match. Thanks, I don't actually know the vendor, would it be

[PATCH 2/2] drm: panel: nv3052c: Add WL-355608-A8 panel

2024-05-24 Thread Ryan Walklin
added. Timings: | Active | FP | Sync | BP | Total ---||--|--|--|--- Horizontal | 640 | 64 | 20 | 46 | 770 Vertical | 480 | 21 | 4 | 15 | 520 Signed-off-by: Ryan Walklin Co-developed-by: Hironori KIKUCHI --- .../gpu/drm/panel/

[PATCH 1/2] dt-bindings: display: panel: Add WL-355608-A8 panel

2024-05-24 Thread Ryan Walklin
The WL-355608-A8 is a 3.5" 640x480@60Hz RGB LCD display from an unknown OEM, used in a number of handheld gaming devices made by Anbernic. Add a device tree binding for the panel. Signed-off-by: Ryan Walklin --- .../bindings/display/panel/wl-355608-a8.yaml | 68 +++ 1

[PATCH 0/2] Add WL-355608-A8 panel

2024-05-24 Thread Ryan Walklin
Hello, The WL_355608_A8 panel is a VGA LCD display with an NV3052C-compatible driver IC, used in a number of Anbernic handheld gaming devices. This patch adds a device tree binding, and support for the display timings and init sequence to the NV3052C SPI/RGB driver. Regards, Ryan Ryan