<html><body><p>
<pre>
Hi, Angelo:
On Wed, 2025-04-09 at 15:13 +0200, AngeloGioacchino Del Regno wrote:
> External email : Please do not click links or open attachments until you have verified the sender or the content.
>
>
> Add support for configuring the Display Parallel Interface block
> to output YUV444 8/10 bits, YUV422 10/12 bits (8 bits support is
> already present), BGR 8-bits, and RGB 10-bits.
>
> The enablement of the various additional output formats in SoCs
> platform data will be done in a different change.
Reviewed-by: CK Hu <ck.hu@mediatek.com>
>
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> ---
> drivers/gpu/drm/mediatek/mtk_dpi.c | 33 ++++++++++++++++++++++++++++--
> 1 file changed, 31 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c
> index 5a66dfe3ad40..a9e8113a1618 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dpi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
> @@ -59,7 +59,8 @@ enum mtk_dpi_out_channel_swap {
>
> enum mtk_dpi_out_color_format {
> MTK_DPI_COLOR_FORMAT_RGB,
> - MTK_DPI_COLOR_FORMAT_YCBCR_422
> + MTK_DPI_COLOR_FORMAT_YCBCR_422,
> + MTK_DPI_COLOR_FORMAT_YCBCR_444
> };
>
> struct mtk_dpi {
> @@ -450,9 +451,15 @@ static void mtk_dpi_config_disable_edge(struct mtk_dpi *dpi)
> static void mtk_dpi_config_color_format(struct mtk_dpi *dpi,
> enum mtk_dpi_out_color_format format)
> {
> - mtk_dpi_config_channel_swap(dpi, MTK_DPI_OUT_CHANNEL_SWAP_RGB);
> + mtk_dpi_config_channel_swap(dpi, dpi->channel_swap);
>
> switch (format) {
> + case MTK_DPI_COLOR_FORMAT_YCBCR_444:
> + mtk_dpi_config_yuv422_enable(dpi, false);
> + mtk_dpi_config_csc_enable(dpi, true);
> + if (dpi->conf->swap_input_support)
> + mtk_dpi_config_swap_input(dpi, false);
> + break;
> case MTK_DPI_COLOR_FORMAT_YCBCR_422:
> mtk_dpi_config_yuv422_enable(dpi, true);
> mtk_dpi_config_csc_enable(dpi, true);
> @@ -743,10 +750,18 @@ static unsigned int mtk_dpi_bus_fmt_bit_num(unsigned int out_bus_format)
> switch (out_bus_format) {
> default:
> case MEDIA_BUS_FMT_RGB888_1X24:
> + case MEDIA_BUS_FMT_BGR888_1X24:
> case MEDIA_BUS_FMT_RGB888_2X12_LE:
> case MEDIA_BUS_FMT_RGB888_2X12_BE:
> case MEDIA_BUS_FMT_YUYV8_1X16:
> + case MEDIA_BUS_FMT_YUV8_1X24:
> return MTK_DPI_OUT_BIT_NUM_8BITS;
> + case MEDIA_BUS_FMT_RGB101010_1X30:
> + case MEDIA_BUS_FMT_YUYV10_1X20:
> + case MEDIA_BUS_FMT_YUV10_1X30:
> + return MTK_DPI_OUT_BIT_NUM_10BITS;
> + case MEDIA_BUS_FMT_YUYV12_1X24:
> + return MTK_DPI_OUT_BIT_NUM_12BITS;
> }
> }
>
> @@ -757,8 +772,15 @@ static unsigned int mtk_dpi_bus_fmt_channel_swap(unsigned int out_bus_format)
> case MEDIA_BUS_FMT_RGB888_1X24:
> case MEDIA_BUS_FMT_RGB888_2X12_LE:
> case MEDIA_BUS_FMT_RGB888_2X12_BE:
> + case MEDIA_BUS_FMT_RGB101010_1X30:
> case MEDIA_BUS_FMT_YUYV8_1X16:
> + case MEDIA_BUS_FMT_YUYV10_1X20:
> + case MEDIA_BUS_FMT_YUYV12_1X24:
> return MTK_DPI_OUT_CHANNEL_SWAP_RGB;
> + case MEDIA_BUS_FMT_BGR888_1X24:
> + case MEDIA_BUS_FMT_YUV8_1X24:
> + case MEDIA_BUS_FMT_YUV10_1X30:
> + return MTK_DPI_OUT_CHANNEL_SWAP_BGR;
> }
> }
>
> @@ -767,11 +789,18 @@ static unsigned int mtk_dpi_bus_fmt_color_format(unsigned int out_bus_format)
> switch (out_bus_format) {
> default:
> case MEDIA_BUS_FMT_RGB888_1X24:
> + case MEDIA_BUS_FMT_BGR888_1X24:
> case MEDIA_BUS_FMT_RGB888_2X12_LE:
> case MEDIA_BUS_FMT_RGB888_2X12_BE:
> + case MEDIA_BUS_FMT_RGB101010_1X30:
> return MTK_DPI_COLOR_FORMAT_RGB;
> case MEDIA_BUS_FMT_YUYV8_1X16:
> + case MEDIA_BUS_FMT_YUYV10_1X20:
> + case MEDIA_BUS_FMT_YUYV12_1X24:
> return MTK_DPI_COLOR_FORMAT_YCBCR_422;
> + case MEDIA_BUS_FMT_YUV8_1X24:
> + case MEDIA_BUS_FMT_YUV10_1X30:
> + return MTK_DPI_COLOR_FORMAT_YCBCR_444;
> }
> }
>
> --
> 2.49.0
>
</pre>
</p></body></html><!--type:text--><!--{--><pre>************* MEDIATEK Confidentiality Notice
********************
The information contained in this e-mail message (including any
attachments) may be confidential, proprietary, privileged, or otherwise
exempt from disclosure under applicable laws. It is intended to be
conveyed only to the designated recipient(s). Any use, dissemination,
distribution, printing, retaining or copying of this e-mail (including its
attachments) by unintended recipient(s) is strictly prohibited and may
be unlawful. If you are not an intended recipient of this e-mail, or believe
that you have received this e-mail in error, please notify the sender
immediately (by replying to this e-mail), delete any and all copies of
this e-mail (including any attachments) from your system, and do not
disclose the content of this e-mail to any other person. Thank you!
</pre><!--}-->