From: Liankun Yang <liankun.yang@mediatek.com>
To: <chunkuang.hu@kernel.org>, <p.zabel@pengutronix.de>,
<airlied@gmail.com>, <simona@ffwll.ch>, <matthias.bgg@gmail.com>,
<angelogioacchino.delregno@collabora.com>,
<mac.shen@mediatek.com>, <peng.liu@mediatek.com>,
<liankun.yang@mediatek.com>,
<Project_Global_Chrome_Upstream_Group@mediatek.com>
Cc: <dri-devel@lists.freedesktop.org>,
<linux-mediatek@lists.infradead.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>
Subject: [PATCH v7 2/2] drm/mediatek: Add isolation to edp
Date: Tue, 4 Nov 2025 16:55:12 +0800 [thread overview]
Message-ID: <20251104085957.1175-3-liankun.yang@mediatek.com> (raw)
In-Reply-To: <20251104085957.1175-1-liankun.yang@mediatek.com>
Because edp doesn't expect any (un)plug events during runtime and
its process differs from DP. Therefore, it is necessary to isolate
the parsing capability, panel power, training state and enable state.
And DP related behaviors are adjusted to execute in the second half
of the interrupt.
For DP details, see drm/mediatek: Adjust bandwidth limit for DP
Signed-off-by: Liankun Yang <liankun.yang@mediatek.com>
---
drivers/gpu/drm/mediatek/mtk_dp.c | 37 +++++++++++++++----------------
1 file changed, 18 insertions(+), 19 deletions(-)
diff --git a/drivers/gpu/drm/mediatek/mtk_dp.c b/drivers/gpu/drm/mediatek/mtk_dp.c
index 0ba2c208811c..efd4c45985ca 100644
--- a/drivers/gpu/drm/mediatek/mtk_dp.c
+++ b/drivers/gpu/drm/mediatek/mtk_dp.c
@@ -2187,7 +2187,8 @@ static const struct drm_edid *mtk_dp_edid_read(struct drm_bridge *bridge,
* Parse capability here to let atomic_get_input_bus_fmts and
* mode_valid use the capability to calculate sink bitrates.
*/
- if (mtk_dp_parse_capabilities(mtk_dp)) {
+ if (mtk_dp->bridge.type == DRM_MODE_CONNECTOR_eDP &&
+ mtk_dp_parse_capabilities(mtk_dp)) {
drm_err(mtk_dp->drm_dev, "Can't parse capabilities\n");
drm_edid_free(drm_edid);
drm_edid = NULL;
@@ -2385,13 +2386,15 @@ static void mtk_dp_bridge_atomic_enable(struct drm_bridge *bridge,
return;
}
- mtk_dp_aux_panel_poweron(mtk_dp, true);
+ if (mtk_dp->data->bridge_type == DRM_MODE_CONNECTOR_eDP) {
+ mtk_dp_aux_panel_poweron(mtk_dp, true);
- /* Training */
- ret = mtk_dp_training(mtk_dp);
- if (ret) {
- drm_err(mtk_dp->drm_dev, "Training failed, %d\n", ret);
- goto power_off_aux;
+ /* Training */
+ ret = mtk_dp_training(mtk_dp);
+ if (ret) {
+ drm_err(mtk_dp->drm_dev, "Training failed, %d\n", ret);
+ goto power_off_aux;
+ }
}
ret = mtk_dp_video_config(mtk_dp);
@@ -2411,7 +2414,9 @@ static void mtk_dp_bridge_atomic_enable(struct drm_bridge *bridge,
sizeof(mtk_dp->info.audio_cur_cfg));
}
- mtk_dp->enabled = true;
+ if (mtk_dp->data->bridge_type == DRM_MODE_CONNECTOR_eDP)
+ mtk_dp->enabled = true;
+
mtk_dp_update_plugged_status(mtk_dp);
return;
@@ -2426,21 +2431,15 @@ static void mtk_dp_bridge_atomic_disable(struct drm_bridge *bridge,
{
struct mtk_dp *mtk_dp = mtk_dp_from_bridge(bridge);
- mtk_dp->enabled = false;
+ if (mtk_dp->data->bridge_type == DRM_MODE_CONNECTOR_eDP) {
+ mtk_dp->enabled = false;
+ mtk_dp_aux_panel_poweron(mtk_dp, false);
+ }
+
mtk_dp_update_plugged_status(mtk_dp);
mtk_dp_video_enable(mtk_dp, false);
mtk_dp_audio_mute(mtk_dp, true);
- if (mtk_dp->train_info.cable_plugged_in) {
- drm_dp_dpcd_writeb(&mtk_dp->aux, DP_SET_POWER, DP_SET_POWER_D3);
- usleep_range(2000, 3000);
- }
-
- /* power off aux */
- mtk_dp_update_bits(mtk_dp, MTK_DP_TOP_PWR_STATE,
- DP_PWR_STATE_BANDGAP_TPLL,
- DP_PWR_STATE_MASK);
-
/* SDP path reset sw*/
mtk_dp_sdp_path_reset(mtk_dp);
--
2.45.2
next prev parent reply other threads:[~2025-11-04 9:00 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-04 8:55 [PATCH v7 0/2] Adjust bandwidth limit for DP Liankun Yang
2025-11-04 8:55 ` [PATCH v7 1/2] drm/mediatek: " Liankun Yang
2025-11-19 9:18 ` CK Hu (胡俊光)
2025-11-24 9:14 ` LIANKUN YANG (杨连坤)
2025-11-26 3:11 ` CK Hu (胡俊光)
2025-12-01 6:39 ` LIANKUN YANG (杨连坤)
2025-12-17 9:59 ` CK Hu (胡俊光)
2025-12-18 1:13 ` CK Hu (胡俊光)
2025-11-04 8:55 ` Liankun Yang [this message]
2025-12-17 10:08 ` [PATCH v7 2/2] drm/mediatek: Add isolation to edp CK Hu (胡俊光)
2025-12-23 6:34 ` LIANKUN YANG (杨连坤)
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=20251104085957.1175-3-liankun.yang@mediatek.com \
--to=liankun.yang@mediatek.com \
--cc=Project_Global_Chrome_Upstream_Group@mediatek.com \
--cc=airlied@gmail.com \
--cc=angelogioacchino.delregno@collabora.com \
--cc=chunkuang.hu@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=mac.shen@mediatek.com \
--cc=matthias.bgg@gmail.com \
--cc=p.zabel@pengutronix.de \
--cc=peng.liu@mediatek.com \
--cc=simona@ffwll.ch \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®