<pre>
Hi, CK:
As you describe, these two patches modify the same thing, let's ignore this patch.
Thanks for your suggestion.
Best Regards,
xinlei
-----邮件原件-----
发件人: CK Hu [mailto:ck.hu@mediatek.com]
发送时间: 2022年1月28日 13:04
收件人: Xinlei Lee (李昕磊); chunkuang.hu@kernel.org; p.zabel@pengutronix.de; airlied@linux.ie; daniel@ffwll.ch; matthias.bgg@gmail.com
抄送: dri-devel@lists.freedesktop.org; linux-mediatek@lists.infradead.org; linux-arm-kernel@lists.infradead.org; srv_heupstream; linux-kernel@vger.kernel.org; Jitao Shi (石记涛)
主题: Re: [v1, 3/3] drm/mediatek: Move the getting bridge node function to mtk_dsi_bind
Hi, Xinlei:
On Thu, 2022-01-27 at 19:42 +0800, xinlei.lee@mediatek.com wrote:
> From: xinlei lee <xinlei.lee@mediatek.com>
>
> The order of probe function for bridge drivers and dsi drivers is
> uncertain.
> To avoid the dsi probe cannot be executed, we place getting bridge
> node function in mtk_dsi_bind.
It seems this patch want to fix the same problem as [1]. Does [1] fix your problem? If so, let's ignore this patch.
[1]
https://patchwork.kernel.org/project/linux-mediatek/patch/20220127143623.123025-1-angelogioacchino.delregno@collabora.com/
Regards,
CK
>
> Signed-off-by:Xinlei Lee <xinlei.lee@mediatek.com>
> ---
> drivers/gpu/drm/mediatek/mtk_dsi.c | 29 +++++++++++++++-------------
> -
> 1 file changed, 15 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c
> b/drivers/gpu/drm/mediatek/mtk_dsi.c
> index 62af60d..a390f26 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
> @@ -991,6 +991,21 @@ static int mtk_dsi_bind(struct device *dev,
> struct device *master, void *data)
> int ret;
> struct drm_device *drm = data;
> struct mtk_dsi *dsi = dev_get_drvdata(dev);
> +struct drm_panel *panel;
> +
> +ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0,
> + &panel, &dsi->next_bridge);
> +if (ret)
> +return ret;
> +
> +if (panel) {
> +dsi->next_bridge = devm_drm_panel_bridge_add(dev,
> panel);
> +if (IS_ERR(dsi->next_bridge)) {
> +ret = PTR_ERR(dsi->next_bridge);
> +dev_err(dev, "failed to add bridge: %d\n",
> ret);
> +return ret;
> +}
> +}
>
> ret = mtk_dsi_encoder_init(drm, dsi);
> if (ret)
> @@ -1016,7 +1031,6 @@ static int mtk_dsi_probe(struct platform_device
> *pdev)
> {
> struct mtk_dsi *dsi;
> struct device *dev = &pdev->dev;
> -struct drm_panel *panel;
> struct resource *regs;
> int irq_num;
> int ret;
> @@ -1033,19 +1047,6 @@ static int mtk_dsi_probe(struct platform_device
> *pdev)
> return ret;
> }
>
> -ret = drm_of_find_panel_or_bridge(dev->of_node, 0, 0,
> - &panel, &dsi->next_bridge);
> -if (ret)
> -goto err_unregister_host;
> -
> -if (panel) {
> -dsi->next_bridge = devm_drm_panel_bridge_add(dev,
> panel);
> -if (IS_ERR(dsi->next_bridge)) {
> -ret = PTR_ERR(dsi->next_bridge);
> -goto err_unregister_host;
> -}
> -}
> -
> dsi->driver_data = of_device_get_match_data(dev);
>
> dsi->engine_clk = devm_clk_get(dev, "engine");
</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><!--}-->