Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp1524420pxb; Sat, 29 Jan 2022 08:26:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJwtRVc2VcpYYt+iwH2nxd9KKw047C9kGZSkvGX7d73uCvwHMRv4UmoxTbmsg7DMJqDNBhlj X-Received: by 2002:a17:906:489b:: with SMTP id v27mr4987043ejq.120.1643473618005; Sat, 29 Jan 2022 08:26:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643473618; cv=none; d=google.com; s=arc-20160816; b=iB++BjwFKLgwzmb4H08z9OBLDKrdCbMMpL3C7wTmgT3UJO3ffjjsPLBwlQTqzCrl+6 9O7eD2+NiCoYEPhTasOJ5Ag65qv7OItVrk+dHRLF7Z/OIyrKgShax1MXMxPiA3r/j49R almfIQ89t9qzToU8fR7/KIcd5DvNHOIax5kEBBQHRkrm5I4xzYgaTdzwzHMa+lEX7sTt B5kk4IMd3Q0GnZ9FllaIwmVD0e22D5+QqwoNh5kHqJPmUt70a7rzeQvc7IaMPmczLY8m wUXq0hBam7M2qSPiacM4CXDeP5RsY8p955lFTXI1O7HGgI2vdf7cvK85fBiCWc5zoB+2 BOtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id; bh=ba12NjMGKGPgJ3a9Jl3qTDomPqTk55bmm5TBF6L4mco=; b=0wH+blBgXsaXDDuQ82n70+5EB+7PkumHM1jQ34KGGuhrR4Q+9nrrSkatBlGUAPwTiN q9ICFxStizkIbW+nLf7byhS8DTTPYoW5dAjwFsuEa1vAqf6BkvsiRhzs+xhOjXH8tIH/ vF3MencXfW8DmnLQxTPLVACmHpY+zZOl+xT1JtQAf/JL8VYoWdKk7GYuxWVWdhAvtVBu ydtYi9t2MQxCberRSgRUsVZlSGqdI69gmGPBegzZM2MVkVRXcPc0tJxyVqlAiJZH00VM N6/5pOMAVhWcnGtRYs9Iult6CDR1DBbdp/P8asXJeSWcrC6FG6yeOdiflTBU1oRsZWUO 1ZcA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e12si5818668edz.192.2022.01.29.08.26.33; Sat, 29 Jan 2022 08:26:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229975AbiA1FEE (ORCPT + 99 others); Fri, 28 Jan 2022 00:04:04 -0500 Received: from mailgw01.mediatek.com ([60.244.123.138]:54490 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S229504AbiA1FEB (ORCPT ); Fri, 28 Jan 2022 00:04:01 -0500 X-UUID: 5ec7b59803ef48eea92c3e282e01dfca-20220128 X-UUID: 5ec7b59803ef48eea92c3e282e01dfca-20220128 Received: from mtkexhb02.mediatek.inc [(172.21.101.103)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1636993121; Fri, 28 Jan 2022 13:03:57 +0800 Received: from mtkcas10.mediatek.inc (172.21.101.39) by mtkmbs10n2.mediatek.inc (172.21.101.183) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.792.3; Fri, 28 Jan 2022 13:03:56 +0800 Received: from mtksdccf07 (172.21.84.99) by mtkcas10.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 28 Jan 2022 13:03:55 +0800 Message-ID: <092258211c47eca805c4dea6c4bf4ecc4c246cea.camel@mediatek.com> Subject: Re: [v1, 3/3] drm/mediatek: Move the getting bridge node function to mtk_dsi_bind From: CK Hu To: , , , , , CC: , , , , , Date: Fri, 28 Jan 2022 13:03:55 +0800 In-Reply-To: <1643283773-7081-4-git-send-email-xinlei.lee@mediatek.com> References: <1643283773-7081-1-git-send-email-xinlei.lee@mediatek.com> <1643283773-7081-4-git-send-email-xinlei.lee@mediatek.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-MTK: N Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Xinlei: On Thu, 2022-01-27 at 19:42 +0800, xinlei.lee@mediatek.com wrote: > From: xinlei lee > > 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 > --- > 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");