All of lore.kernel.org
 help / color / mirror / Atom feed
From: <xinlei.lee@mediatek.com>
To: <chunkuang.hu@kernel.org>, <p.zabel@pengutronix.de>,
	<airlied@linux.ie>, <daniel@ffwll.ch>, <matthias.bgg@gmail.com>
Cc: <dri-devel@lists.freedesktop.org>,
	<linux-mediatek@lists.infradead.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<srv_heupstream@mediatek.com>, <linux-kernel@vger.kernel.org>,
	<jitao.shi@mediatek.com>, xinlei lee <xinlei.lee@mediatek.com>
Subject: [v1,3/3] drm/mediatek: Move the getting bridge node function to mtk_dsi_bind
Date: Thu, 27 Jan 2022 19:42:53 +0800	[thread overview]
Message-ID: <1643283773-7081-4-git-send-email-xinlei.lee@mediatek.com> (raw)
In-Reply-To: <1643283773-7081-1-git-send-email-xinlei.lee@mediatek.com>

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.

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");
-- 
2.6.4


WARNING: multiple messages have this Message-ID (diff)
From: <xinlei.lee@mediatek.com>
To: <chunkuang.hu@kernel.org>, <p.zabel@pengutronix.de>,
	<airlied@linux.ie>, <daniel@ffwll.ch>, <matthias.bgg@gmail.com>
Cc: <dri-devel@lists.freedesktop.org>,
	<linux-mediatek@lists.infradead.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<srv_heupstream@mediatek.com>, <linux-kernel@vger.kernel.org>,
	<jitao.shi@mediatek.com>, xinlei lee <xinlei.lee@mediatek.com>
Subject: [v1, 3/3] drm/mediatek: Move the getting bridge node function to mtk_dsi_bind
Date: Thu, 27 Jan 2022 19:42:53 +0800	[thread overview]
Message-ID: <1643283773-7081-4-git-send-email-xinlei.lee@mediatek.com> (raw)
In-Reply-To: <1643283773-7081-1-git-send-email-xinlei.lee@mediatek.com>

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.

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");
-- 
2.6.4


_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: <xinlei.lee@mediatek.com>
To: <chunkuang.hu@kernel.org>, <p.zabel@pengutronix.de>,
	<airlied@linux.ie>, <daniel@ffwll.ch>, <matthias.bgg@gmail.com>
Cc: <dri-devel@lists.freedesktop.org>,
	<linux-mediatek@lists.infradead.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<srv_heupstream@mediatek.com>, <linux-kernel@vger.kernel.org>,
	<jitao.shi@mediatek.com>, xinlei lee <xinlei.lee@mediatek.com>
Subject: [v1, 3/3] drm/mediatek: Move the getting bridge node function to mtk_dsi_bind
Date: Thu, 27 Jan 2022 19:42:53 +0800	[thread overview]
Message-ID: <1643283773-7081-4-git-send-email-xinlei.lee@mediatek.com> (raw)
In-Reply-To: <1643283773-7081-1-git-send-email-xinlei.lee@mediatek.com>

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.

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");
-- 
2.6.4


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: <xinlei.lee@mediatek.com>
To: <chunkuang.hu@kernel.org>, <p.zabel@pengutronix.de>,
	<airlied@linux.ie>, <daniel@ffwll.ch>, <matthias.bgg@gmail.com>
Cc: jitao.shi@mediatek.com, xinlei lee <xinlei.lee@mediatek.com>,
	srv_heupstream@mediatek.com, linux-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org,
	linux-mediatek@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org
Subject: [v1, 3/3] drm/mediatek: Move the getting bridge node function to mtk_dsi_bind
Date: Thu, 27 Jan 2022 19:42:53 +0800	[thread overview]
Message-ID: <1643283773-7081-4-git-send-email-xinlei.lee@mediatek.com> (raw)
In-Reply-To: <1643283773-7081-1-git-send-email-xinlei.lee@mediatek.com>

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.

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");
-- 
2.6.4


  parent reply	other threads:[~2022-01-27 11:43 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-27 11:42 [v1,0/3] Add mt8186 dsi compatoble & Move the getting bridge node function xinlei.lee
2022-01-27 11:42 ` [v1, 0/3] " xinlei.lee
2022-01-27 11:42 ` xinlei.lee
2022-01-27 11:42 ` xinlei.lee
2022-01-27 11:42 ` [v1,1/3] dt-bindings: display: mediatek: dsi: add documentation for MT8186 SoC xinlei.lee
2022-01-27 11:42   ` [v1, 1/3] " xinlei.lee
2022-01-27 11:42   ` xinlei.lee
2022-01-27 11:42   ` xinlei.lee
2022-01-28  5:08   ` CK Hu
2022-01-28  5:08     ` CK Hu
2022-01-28  5:08     ` CK Hu
2022-01-28  5:08     ` CK Hu
2022-02-14  8:17     ` xinlei.lee
2022-02-14  8:17       ` xinlei.lee
2022-02-14  8:17       ` xinlei.lee
2022-01-27 11:42 ` [v1,2/3] drm/mediatek: Add mt8186 dsi compatible to mtk_dsi.c xinlei.lee
2022-01-27 11:42   ` xinlei.lee
2022-01-27 11:42   ` xinlei.lee
2022-01-27 11:42   ` xinlei.lee
2022-01-28  5:10   ` CK Hu
2022-01-28  5:10     ` CK Hu
2022-01-28  5:10     ` CK Hu
2022-01-28  5:10     ` CK Hu
2022-01-27 11:42 ` xinlei.lee [this message]
2022-01-27 11:42   ` [v1, 3/3] drm/mediatek: Move the getting bridge node function to mtk_dsi_bind xinlei.lee
2022-01-27 11:42   ` xinlei.lee
2022-01-27 11:42   ` xinlei.lee
2022-01-28  5:03   ` CK Hu
2022-01-28  5:03     ` CK Hu
2022-01-28  5:03     ` CK Hu
2022-01-28  5:03     ` CK Hu
2022-01-28  5:37     ` 答复: " Xinlei Lee (李昕磊)
2022-01-28  5:37       ` Xinlei Lee (李昕磊)
2022-02-14  8:10     ` xinlei.lee
2022-02-14  8:10       ` xinlei.lee
2022-02-14  8:10       ` xinlei.lee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1643283773-7081-4-git-send-email-xinlei.lee@mediatek.com \
    --to=xinlei.lee@mediatek.com \
    --cc=airlied@linux.ie \
    --cc=chunkuang.hu@kernel.org \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jitao.shi@mediatek.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=p.zabel@pengutronix.de \
    --cc=srv_heupstream@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.