[PATCH v6 1/2] drm/mediatek: ovl: Add blend_modes to driver data
Jason-JH Lin (林睿祥)
Jason-JH.Lin at mediatek.com
Thu Sep 26 02:49:03 PDT 2024
On Thu, 2024-09-26 at 09:30 +0000, CK Hu (胡俊光) wrote:
> Hi, Jason:
>
> On Thu, 2024-09-26 at 16:35 +0800, Jason-JH.Lin wrote:
> > OVL_CON_CLRFMT_MAN is a configuration for extending color format
> > settings of DISP_REG_OVL_CON(n).
> > It will change some of the original color format settings.
> >
> > Take the settings of (3 << 12) for example.
> > - If OVL_CON_CLRFMT_MAN = 0 means OVL_CON_CLRFMT_RGBA8888.
> > - If OVL_CON_CLRFMT_MAN = 1 means OVL_CON_CLRFMT_PARGB8888.
> >
> > Since previous SoCs did not support OVL_CON_CLRFMT_MAN, this means
> > that the SoC does not support the premultiplied color format.
> > It will break the original color format setting of MT8173.
> >
> > Therefore, the blend_modes is added to the driver data and then
> > mtk_ovl_fmt_convert() will check the blend_modes to see if
> > premultiplied supported in current platform.
> > If it is not supported, use coverage mode to set it to the
> > supported
> > color formats to solve the degradation problem.
> >
> > Fixes: a3f7f7ef4bfe ("drm/mediatek: Support "Pre-multiplied"
> > blending in OVL")
> > Signed-off-by: Jason-JH.Lin <jason-jh.lin at mediatek.com>
> > Tested-by: Alper Nebi Yasak <alpernebiyasak at gmail.com>
> > Reviewed-by: AngeloGioacchino Del Regno <
> > angelogioacchino.delregno at collabora.com>
>
> This version has difference over 50% with previous version.
> It's better to drop these tested-by and reviewed-by tag.
OK, I'll drop this.
>
> > ---
> > drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 41 ++++++++++++++++++++-
> > ----
> > 1 file changed, 34 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> > b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> > index 89b439dcf3a6..0cf7b80f612e 100644
> > --- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> > +++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> > @@ -146,6 +146,7 @@ struct mtk_disp_ovl_data {
> > bool fmt_rgb565_is_0;
> > bool smi_id_en;
> > bool supports_afbc;
> > + const u32 blend_modes;
> > const u32 *formats;
> > size_t num_formats;
> > bool supports_clrfmt_ext;
> > @@ -386,14 +387,23 @@ void mtk_ovl_layer_off(struct device *dev,
> > unsigned int idx,
> > DISP_REG_OVL_RDMA_CTRL(idx));
> > }
> >
> > -static unsigned int ovl_fmt_convert(struct mtk_disp_ovl *ovl,
> > unsigned int fmt,
> > - unsigned int blend_mode)
> > +static unsigned int mtk_ovl_fmt_convert(struct mtk_disp_ovl *ovl,
> > + struct mtk_plane_state *state)
> > {
> > - /* The return value in switch "MEM_MODE_INPUT_FORMAT_XXX"
> > - * is defined in mediatek HW data sheet.
> > - * The alphabet order in XXX is no relation to data
> > - * arrangement in memory.
>
> I don't know why you drop these comment.
> Without this modification,
Since we change the MACRO to align this to DRM input format order, this
comment is no longer needed.
I'll send another patch for this.
Thanks for such a quick reply!
Regards,
Jason-JH.Lin
>
> Reviewed-by: CK Hu <ck.hu at mediatek.com>
>
More information about the Linux-mediatek
mailing list