[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