<pre>
Hi, Xinlei:

On Fri, 2022-09-23 at 17:58 +0800, xinlei.lee@mediatek.com wrote:
> From: Xinlei Lee <xinlei.lee@mediatek.com>
>
> The difference between MT8186 and other ICs is that when modifying
> the
> output format, we need to modify the mmsys_base+0x400 register to
> take
> effect.
> So when setting the dpi output format, we need to call mmsys_func to
> set
> it to MT8186 synchronously.
> Adding mmsys all the settings that need to be modified with dpi are
> for mt8186.

Reviewed-by: CK Hu <ck.hu@mediatek.com>

>
> Fixes: a071e52f75d1 ("soc: mediatek: Add mmsys func to adapt to dpi
> output for MT8186")
>
> Signed-off-by: Xinlei Lee <xinlei.lee@mediatek.com>
> Reviewed-by: AngeloGioacchino Del Regno <
> angelogioacchino.delregno@collabora.com>
> ---
> drivers/soc/mediatek/mt8186-mmsys.h | 8 +++++---
> drivers/soc/mediatek/mtk-mmsys.c | 27 ++++++++++++++++++++--
> ----
> include/linux/soc/mediatek/mtk-mmsys.h | 7 +++++++
> 3 files changed, 33 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/soc/mediatek/mt8186-mmsys.h
> b/drivers/soc/mediatek/mt8186-mmsys.h
> index 09b1ccbc0093..035aec1eb616 100644
> --- a/drivers/soc/mediatek/mt8186-mmsys.h
> +++ b/drivers/soc/mediatek/mt8186-mmsys.h
> @@ -5,9 +5,11 @@
>
> /* Values for DPI configuration in MMSYS address space */
> #define MT8186_MMSYS_DPI_OUTPUT_FORMAT0x400
> -#define DPI_FORMAT_MASK0x1
> -#define DPI_RGB888_DDR_CONBIT(0)
> -#define DPI_RGB565_SDR_CONBIT(1)
> +#define DPI_FORMAT_MASKGENMASK
> (1, 0)
> +#define DPI_RGB888_SDR_CON0
> +#define DPI_RGB888_DDR_CON1
> +#define DPI_RGB565_SDR_CON2
> +#define DPI_RGB565_DDR_CON3
>
> #define MT8186_MMSYS_OVL_CON0xF04
> #define MT8186_MMSYS_OVL0_CON_MASK0x3
> diff --git a/drivers/soc/mediatek/mtk-mmsys.c
> b/drivers/soc/mediatek/mtk-mmsys.c
> index 2e20b24da363..95fbac5bd378 100644
> --- a/drivers/soc/mediatek/mtk-mmsys.c
> +++ b/drivers/soc/mediatek/mtk-mmsys.c
> @@ -238,12 +238,27 @@ static void mtk_mmsys_update_bits(struct
> mtk_mmsys *mmsys, u32 offset, u32 mask,
>
> void mtk_mmsys_ddp_dpi_fmt_config(struct device *dev, u32 val)
> {
> -if (val)
> -mtk_mmsys_update_bits(dev_get_drvdata(dev),
> MT8186_MMSYS_DPI_OUTPUT_FORMAT,
> - DPI_RGB888_DDR_CON,
> DPI_FORMAT_MASK);
> -else
> -mtk_mmsys_update_bits(dev_get_drvdata(dev),
> MT8186_MMSYS_DPI_OUTPUT_FORMAT,
> - DPI_RGB565_SDR_CON,
> DPI_FORMAT_MASK);
> +struct mtk_mmsys *mmsys = dev_get_drvdata(dev);
> +
> +switch (val) {
> +case MTK_DPI_RGB888_SDR_CON:
> +mtk_mmsys_update_bits(mmsys,
> MT8186_MMSYS_DPI_OUTPUT_FORMAT,
> + DPI_FORMAT_MASK,
> DPI_RGB888_SDR_CON);
> +break;
> +case MTK_DPI_RGB565_SDR_CON:
> +mtk_mmsys_update_bits(mmsys,
> MT8186_MMSYS_DPI_OUTPUT_FORMAT,
> + DPI_FORMAT_MASK,
> DPI_RGB565_SDR_CON);
> +break;
> +case MTK_DPI_RGB565_DDR_CON:
> +mtk_mmsys_update_bits(mmsys,
> MT8186_MMSYS_DPI_OUTPUT_FORMAT,
> + DPI_FORMAT_MASK,
> DPI_RGB565_DDR_CON);
> +break;
> +case MTK_DPI_RGB888_DDR_CON:
> +default:
> +mtk_mmsys_update_bits(mmsys,
> MT8186_MMSYS_DPI_OUTPUT_FORMAT,
> + DPI_FORMAT_MASK,
> DPI_RGB888_DDR_CON);
> +break;
> +}
> }
> EXPORT_SYMBOL_GPL(mtk_mmsys_ddp_dpi_fmt_config);
>
> diff --git a/include/linux/soc/mediatek/mtk-mmsys.h
> b/include/linux/soc/mediatek/mtk-mmsys.h
> index d2b02bb43768..b85f66db33e1 100644
> --- a/include/linux/soc/mediatek/mtk-mmsys.h
> +++ b/include/linux/soc/mediatek/mtk-mmsys.h
> @@ -9,6 +9,13 @@
> enum mtk_ddp_comp_id;
> struct device;
>
> +enum mtk_dpi_out_format_con {
> +MTK_DPI_RGB888_SDR_CON,
> +MTK_DPI_RGB888_DDR_CON,
> +MTK_DPI_RGB565_SDR_CON,
> +MTK_DPI_RGB565_DDR_CON
> +};
> +
> enum mtk_ddp_comp_id {
> DDP_COMPONENT_AAL0,
> DDP_COMPONENT_AAL1,

</pre><!--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><!--}-->