[PATCH v11 6/8] drm: sun4i: de33: mixer: add Display Engine 3.3 (DE33) support
Chen-Yu Tsai
wens at csie.org
Sun May 18 16:50:37 UTC 2025
Hi,
On Fri, May 16, 2025 at 6:52 PM Ryan Walklin <ryan at testtoast.com> wrote:
>
> From: Jernej Skrabec <jernej.skrabec at gmail.com>
>
> The DE33 is a newer version of the Allwinner Display Engine IP block,
> found in the H616, H618, H700 and T507 SoCs. DE2 and DE3 are already
> supported by the mainline driver.
>
> Notable features (from the H616 datasheet and implemented):
> - 4096 x 2048 (4K) output support
>
> Other features (implemented but not in this patchset):
> - AFBC ARM Frame Buffer Compression support
> - YUV pipeline support
>
> The DE2 and DE3 engines have a blender register range within the
> mixer engine register map, whereas the DE33 separates this out into
> a separate display group, and adds a top register map.
>
> The DE33 also appears to remove the global double buffer control
> register, present in the DE2 and DE3.
>
> Extend the mixer to support the DE33.
>
> Signed-off-by: Jernej Skrabec <jernej.skrabec at gmail.com>
> Signed-off-by: Ryan Walklin <ryan at testtoast.com>
> Signed-off-by: Chris Morgan <macromorgan at hotmail.com>
> Acked-by: Maxime Ripard <mripard at kernel.org>
>
> ---
> Changelog v4..v5:
> - Whitespace fixes
> - Correct strict mode warnings from checkpatch.pl
>
> Changelog v7..v8:
> - Add top/disp regmaps to mixer for DE33
> - Remove YUV-specific code
> - Remove use of global double buffer
> - Remove unneeded if/then parentheses and fix an alignment issue as suggested by checkpatch.pl
>
> Changelog v9..v10:
> - Use names from vendor BSP kernel for register blocks.
>
> Changelog v10..v11:
> - move before vi_scaler patch as vi_scaler code references new DE33 enum.
>
> Changelog v10..v11:
> - Convert de_type enum to uppercase
> ---
> drivers/gpu/drm/sun4i/sun8i_mixer.c | 82 +++++++++++++++++++++++++----
> drivers/gpu/drm/sun4i/sun8i_mixer.h | 15 +++++-
> 2 files changed, 84 insertions(+), 13 deletions(-)
>
[...]
> diff --git a/drivers/gpu/drm/sun4i/sun8i_mixer.h b/drivers/gpu/drm/sun4i/sun8i_mixer.h
> index b75008d05fc9..870f9b9daf0d 100644
> --- a/drivers/gpu/drm/sun4i/sun8i_mixer.h
> +++ b/drivers/gpu/drm/sun4i/sun8i_mixer.h
> @@ -21,6 +21,9 @@
> #define SUN8I_MIXER_GLOBAL_DBUFF 0x8
> #define SUN8I_MIXER_GLOBAL_SIZE 0xc
>
> +#define SUN50I_MIXER_GLOBAL_SIZE 0x8
> +#define SUN50I_MIXER_GLOBAL_CLK 0xc
> +
> #define SUN8I_MIXER_GLOBAL_CTL_RT_EN BIT(0)
>
> #define SUN8I_MIXER_GLOBAL_DBUFF_ENABLE BIT(0)
> @@ -154,6 +157,7 @@ enum {
> enum sun8i_mixer_type {
> SUN8I_MIXER_DE2,
> SUN8I_MIXER_DE3,
> + SUN8I_MIXER_DE33,
> };
>
> /**
> @@ -178,6 +182,7 @@ struct sun8i_mixer_cfg {
> unsigned long mod_rate;
> unsigned int de_type;
> unsigned int scanline_yuv;
> + unsigned int map[6];
This needs a corresponding change to the kernel-doc immediately
before it, or the doc generation build will produce a warning.
You can keep the reviewed-by after fixing it.
ChenYu
More information about the dri-devel
mailing list