b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame] | 1 | From 06b758a32bb5ca164cff60f20173ecd71508c5ae Mon Sep 17 00:00:00 2001 |
| 2 | From: Sandor Yu <Sandor.yu@nxp.com> |
| 3 | Date: Mon, 9 Dec 2019 17:58:29 +0800 |
| 4 | Subject: [PATCH] LF-323-2: drm/bridge/cdns: enhance link training stability |
| 5 | |
| 6 | Remove drm_dp_link_power_down from bridge_disable function, |
| 7 | in case some DP sinks aren't follow DP 1.1 specification |
| 8 | and can not exit the power saving state within 1 ms. |
| 9 | Add drm_dp_link_power_up to bridge_enable function, |
| 10 | make sure DP sinks are power up before link training. |
| 11 | |
| 12 | Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> |
| 13 | Reviewed-by: Robby Cai <robby.cai@nxp.com> |
| 14 | --- |
| 15 | drivers/gpu/drm/bridge/cadence/cdns-dp-core.c | 3 ++- |
| 16 | 1 file changed, 2 insertions(+), 1 deletion(-) |
| 17 | |
| 18 | --- a/drivers/gpu/drm/bridge/cadence/cdns-dp-core.c |
| 19 | +++ b/drivers/gpu/drm/bridge/cadence/cdns-dp-core.c |
| 20 | @@ -329,6 +329,8 @@ static void cdn_hdp_bridge_enable(struct |
| 21 | struct cdns_mhdp_device *mhdp = bridge->driver_private; |
| 22 | int ret; |
| 23 | |
| 24 | + drm_dp_link_power_up(&mhdp->dp.aux, &mhdp->dp.link); |
| 25 | + |
| 26 | /* Link trainning */ |
| 27 | ret = cdns_mhdp_train_link(mhdp); |
| 28 | if (ret) { |
| 29 | @@ -348,7 +350,6 @@ static void cdn_hdp_bridge_disable(struc |
| 30 | struct cdns_mhdp_device *mhdp = bridge->driver_private; |
| 31 | |
| 32 | cdns_mhdp_set_video_status(mhdp, CONTROL_VIDEO_IDLE); |
| 33 | - drm_dp_link_power_down(&mhdp->dp.aux, &mhdp->dp.link); |
| 34 | } |
| 35 | |
| 36 | static const struct drm_bridge_funcs cdns_dp_bridge_funcs = { |