On Mon, 2022-03-28 at 00:39 +0200, Guillaume Ranquet wrote:
Add a mtk_dpi_matrix_sel() helper to update the DPI_MATRIX_SET register depending on the color format.
Signed-off-by: Guillaume Ranquet granquet@baylibre.com
drivers/gpu/drm/mediatek/mtk_dpi.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)
diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c index 8198d3cf23ac..82f97c687652 100644 --- a/drivers/gpu/drm/mediatek/mtk_dpi.c +++ b/drivers/gpu/drm/mediatek/mtk_dpi.c @@ -385,6 +385,25 @@ static void mtk_dpi_config_disable_edge(struct mtk_dpi *dpi) mtk_dpi_mask(dpi, dpi->conf->reg_h_fre_con, 0, EDGE_SEL_EN); }
+static void mtk_dpi_matrix_sel(struct mtk_dpi *dpi, enum mtk_dpi_out_color_format format) +{
- u32 matrix_sel = 0;
- switch (format) {
- case MTK_DPI_COLOR_FORMAT_YCBCR_422:
- case MTK_DPI_COLOR_FORMAT_YCBCR_422_FULL:
- case MTK_DPI_COLOR_FORMAT_YCBCR_444:
- case MTK_DPI_COLOR_FORMAT_YCBCR_444_FULL:
- case MTK_DPI_COLOR_FORMAT_XV_YCC:
if (dpi->mode.hdisplay <= 720)
matrix_sel = 0x2;
break;
- default:
break;
- }
- mtk_dpi_mask(dpi, DPI_MATRIX_SET, matrix_sel,
INT_MATRIX_SEL_MASK); +}
static void mtk_dpi_config_color_format(struct mtk_dpi *dpi, enum mtk_dpi_out_color_format format) { @@ -392,6 +411,7 @@ static void mtk_dpi_config_color_format(struct mtk_dpi *dpi, (format == MTK_DPI_COLOR_FORMAT_YCBCR_444_FULL)) { 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); mtk_dpi_config_channel_swap(dpi,mtk_dpi_matrix_sel(dpi, format);
MTK_DPI_OUT_CHANNEL_SWAP_BGR); @@ -399,6 +419,7 @@ static void mtk_dpi_config_color_format(struct mtk_dpi *dpi, (format == MTK_DPI_COLOR_FORMAT_YCBCR_422_FULL)) { mtk_dpi_config_yuv422_enable(dpi, true); mtk_dpi_config_csc_enable(dpi, true);
if (dpi->conf->swap_input_support) mtk_dpi_config_swap_input(dpi, true); mtk_dpi_config_channel_swap(dpi,mtk_dpi_matrix_sel(dpi, format);
MTK_DPI_OUT_CHANNEL_SWAP_RGB);
Hello Guillaume,
Thanks for your patch. I have one question: Do this setting affect the dpi for previous SoCs? (8183, 8192, or 8186) If we can confirm the original register setting for this offset in 8183/8192/8186, I think we can clarify this question.
BRs, Rex