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
next prev 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.