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

AngeloGioacchino Del Regno angelogioacchino.delregno at collabora.com
Fri Sep 23 02:16:34 PDT 2022


Il 22/09/22 14:45, xinlei.lee at mediatek.com ha scritto:
> From: Xinlei Lee <xinlei.lee at mediatek.com>
> 
> 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 at mediatek.com>
> Signed-off-by: Jitao Shi <jitao.shi at mediatek.com>
> Signed-off-by: Xinlei Lee <xinlei.lee at mediatek.com>
> ---
>   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





More information about the Linux-mediatek mailing list