<pre>
Hi, Nancy:

On Wed, 2023-03-29 at 09:59 +0800, Nancy.Lin wrote:
> Add ovl_adaptor get_format and get_num_formats component function.
> The two functions are need for getting the supported format in
> mtk_plane_init().
>
> Signed-off-by: Nancy.Lin <nancy.lin@mediatek.com>
> ---
> drivers/gpu/drm/mediatek/mtk_disp_drv.h | 2 ++
> .../gpu/drm/mediatek/mtk_disp_ovl_adaptor.c | 24
> +++++++++++++++++++
> drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 2 ++
> 3 files changed, 28 insertions(+)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_drv.h
> b/drivers/gpu/drm/mediatek/mtk_disp_drv.h
> index 0d28b2e2069c..da2de17b84e9 100644
> --- a/drivers/gpu/drm/mediatek/mtk_disp_drv.h
> +++ b/drivers/gpu/drm/mediatek/mtk_disp_drv.h
> @@ -124,6 +124,8 @@ void mtk_ovl_adaptor_start(struct device *dev);
> void mtk_ovl_adaptor_stop(struct device *dev);
> unsigned int mtk_ovl_adaptor_layer_nr(struct device *dev);
> struct device *mtk_ovl_adaptor_dma_dev_get(struct device *dev);
> +const u32 *mtk_ovl_adaptor_get_formats(struct device *dev);
> +size_t mtk_ovl_adaptor_get_num_formats(struct device *dev);
>
> void mtk_rdma_bypass_shadow(struct device *dev);
> int mtk_rdma_clk_enable(struct device *dev);
> diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c
> b/drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c
> index 046217828ab3..b5d28c392c57 100644
> --- a/drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c
> +++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c
> @@ -25,6 +25,20 @@
> #define MTK_OVL_ADAPTOR_RDMA_MAX_WIDTH 1920
> #define MTK_OVL_ADAPTOR_LAYER_NUM 4
>
> +static const u32 formats[] = {
> +DRM_FORMAT_XRGB8888,
> +DRM_FORMAT_ARGB8888,
> +DRM_FORMAT_BGRX8888,
> +DRM_FORMAT_BGRA8888,
> +DRM_FORMAT_ABGR8888,
> +DRM_FORMAT_XBGR8888,
> +DRM_FORMAT_RGB888,
> +DRM_FORMAT_BGR888,
> +DRM_FORMAT_RGB565,
> +DRM_FORMAT_UYVY,
> +DRM_FORMAT_YUYV,
> +};
> +
> enum mtk_ovl_adaptor_comp_type {
> OVL_ADAPTOR_TYPE_RDMA = 0,
> OVL_ADAPTOR_TYPE_MERGE,
> @@ -297,6 +311,16 @@ void mtk_ovl_adaptor_disable_vblank(struct
> device *dev)
> mtk_ethdr_disable_vblank(ovl_adaptor-
> >ovl_adaptor_comp[OVL_ADAPTOR_ETHDR0]);
> }
>
> +const u32 *mtk_ovl_adaptor_get_formats(struct device *dev)
> +{
> +return formats;

The supported formats depend on the mdp-rdma hardware capability, so
get formats from mdp-rdma driver.

Regards,
CK

> +}
> +
> +size_t mtk_ovl_adaptor_get_num_formats(struct device *dev)
> +{
> +return ARRAY_SIZE(formats);
> +}
> +
> void mtk_ovl_adaptor_add_comp(struct device *dev, struct mtk_mutex
> *mutex)
> {
> mtk_mutex_add_comp(mutex, DDP_COMPONENT_MDP_RDMA0);
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c
> b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c
> index 1a0c4f7e352a..f114da4d36a9 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c
> @@ -410,6 +410,8 @@ static const struct mtk_ddp_comp_funcs
> ddp_ovl_adaptor = {
> .disconnect = mtk_ovl_adaptor_disconnect,
> .add = mtk_ovl_adaptor_add_comp,
> .remove = mtk_ovl_adaptor_remove_comp,
> +.get_formats = mtk_ovl_adaptor_get_formats,
> +.get_num_formats = mtk_ovl_adaptor_get_num_formats,
> };
>
> static const char * const mtk_ddp_comp_stem[MTK_DDP_COMP_TYPE_MAX] =
> {

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