Re: [PATCH v8,2/3]drm: mediatek: Adjust the dpi output format to MT8186

From: AngeloGioacchino Del Regno
Date: Fri Sep 23 2022 - 05:16:49 EST


Il 22/09/22 14:45, xinlei.lee@xxxxxxxxxxxx ha scritto:
From: Xinlei Lee <xinlei.lee@xxxxxxxxxxxx>

Due to the mt8186 hardware changes, we need to modify the dpi output
format corresponding to the mmsys register(mmsys_base+0x400).

Because different sink ICs may support other output formats.
The current DRM architecture supports retrieving the output format of
all bridges (eg dpi is implemented via DRM's .atomic_check and
.atomic_get_output_bus_fmts and .atomic_get_input_bus_fmts).
If no unified output format is found, the default soc format
(MEDIA_BUS_FMT_RGB888_2X12_LE in mt8186) is used.

Therefore, if there are other format sink ICs (RGB888_DDR/RGB888_SDR) in
the future, the sink IC needs to add the func implementation mentioned
above needs to be added.
And the drm architecture will select the appropriate format to change
the dpi output.

Co-developed-by: Jitao Shi <jitao.shi@xxxxxxxxxxxx>
Signed-off-by: Jitao Shi <jitao.shi@xxxxxxxxxxxx>
Signed-off-by: Xinlei Lee <xinlei.lee@xxxxxxxxxxxx>
---
drivers/gpu/drm/mediatek/mtk_dpi.c | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/mediatek/mtk_dpi.c b/drivers/gpu/drm/mediatek/mtk_dpi.c
index 630a4e301ef6..bd1870a8504a 100644
--- a/drivers/gpu/drm/mediatek/mtk_dpi.c
+++ b/drivers/gpu/drm/mediatek/mtk_dpi.c
@@ -15,6 +15,7 @@
#include <linux/of_graph.h>
#include <linux/pinctrl/consumer.h>
#include <linux/platform_device.h>
+#include <linux/soc/mediatek/mtk-mmsys.h>
#include <linux/types.h>
#include <video/videomode.h>
@@ -30,6 +31,7 @@
#include "mtk_disp_drv.h"
#include "mtk_dpi_regs.h"
#include "mtk_drm_ddp_comp.h"
+#include "mtk_drm_drv.h"
enum mtk_dpi_out_bit_num {
MTK_DPI_OUT_BIT_NUM_8BITS,
@@ -82,6 +84,7 @@ struct mtk_dpi {
struct pinctrl_state *pins_dpi;
u32 output_fmt;
int refcount;
+ struct device *mmsys_dev;

Please place this after `struct device *dev;` and not here at the end.

Thanks,
Angelo