<pre>
Hi, Jason:
On Wed, 2023-08-09 at 20:57 +0800, Jason-JH.Lin wrote:
> The difference between drm_atomic_helper_commit_tail() and
> drm_atomic_helper_commit_tail_rpm() is
> drm_atomic_helper_commit_tail() will commit plane first and
> then enable crtc, drm_atomic_helper_commit_tail_rpm() will
> enable crtc first and then commit plane.
>
> Before mediatek-drm enables crtc, the power and clk required
> by OVL have not been turned on, so the commit plane cannot be
> committed before crtc is enabled. That means OVL layer should
> not be enabled before crtc is enabled.
> Therefore, the atomic_commit_tail of mediatek-drm is hooked with
> drm_atomic_helper_commit_tail_rpm().
>
> Another reason is that the plane_state of drm_atomic_state is not
> synchronized with the plane_state stored in mtk_crtc during crtc
> enablng,
> so just set all planes to disabled.
Reviewed-by: CK Hu <ck.hu@mediatek.com>
>
> Fixes: 119f5173628a ("drm/mediatek: Add DRM Driver for Mediatek SoC
> MT8173.")
> Signed-off-by: Jason-JH.Lin <jason-jh.lin@mediatek.com>
> Reviewed-by: Alexandre Mergnat <amergnat@baylibre.com>
> Reviewed-by: AngeloGioacchino Del Regno <
> angelogioacchino.delregno@collabora.com>
> ---
> drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> index d40142842f85..51d10e65004e 100644
> --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c
> @@ -410,6 +410,9 @@ static int mtk_crtc_ddp_hw_init(struct
> mtk_drm_crtc *mtk_crtc)
> unsigned int local_layer;
>
> plane_state = to_mtk_plane_state(plane->state);
> +
> +/* should not enable layer before crtc enabled */
> +plane_state->pending.enable = false;
> comp = mtk_drm_ddp_comp_for_plane(crtc, plane,
> &local_layer);
> if (comp)
> mtk_ddp_comp_layer_config(comp, local_layer,
</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><!--}-->