mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 12:57:06 +09:00
drm/rockchip: dw-dp: reset dp controller status
After disable dp controller, reset it status to avoid something wrong if the status is abnormal. Signed-off-by: Zhang Yubing <yubing.zhang@rock-chips.com> Change-Id: I9de6ab056317a09b104ef604a6ef4ec20610fb65
This commit is contained in:
@@ -2112,6 +2112,17 @@ static void dw_dp_bridge_atomic_enable(struct drm_bridge *bridge,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void dw_dp_reset(struct dw_dp *dp)
|
||||||
|
{
|
||||||
|
regmap_update_bits(dp->regmap, DPTX_SOFT_RESET_CTRL, CONTROLLER_RESET,
|
||||||
|
FIELD_PREP(CONTROLLER_RESET, 1));
|
||||||
|
udelay(10);
|
||||||
|
regmap_update_bits(dp->regmap, DPTX_SOFT_RESET_CTRL, CONTROLLER_RESET,
|
||||||
|
FIELD_PREP(CONTROLLER_RESET, 0));
|
||||||
|
|
||||||
|
dw_dp_init(dp);
|
||||||
|
}
|
||||||
|
|
||||||
static void dw_dp_bridge_atomic_disable(struct drm_bridge *bridge,
|
static void dw_dp_bridge_atomic_disable(struct drm_bridge *bridge,
|
||||||
struct drm_bridge_state *old_bridge_state)
|
struct drm_bridge_state *old_bridge_state)
|
||||||
{
|
{
|
||||||
@@ -2120,6 +2131,7 @@ static void dw_dp_bridge_atomic_disable(struct drm_bridge *bridge,
|
|||||||
dw_dp_video_disable(dp);
|
dw_dp_video_disable(dp);
|
||||||
dw_dp_link_disable(dp);
|
dw_dp_link_disable(dp);
|
||||||
bitmap_zero(dp->sdp_reg_bank, SDP_REG_BANK_SIZE);
|
bitmap_zero(dp->sdp_reg_bank, SDP_REG_BANK_SIZE);
|
||||||
|
dw_dp_reset(dp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static enum drm_connector_status dw_dp_detect_dpcd(struct dw_dp *dp)
|
static enum drm_connector_status dw_dp_detect_dpcd(struct dw_dp *dp)
|
||||||
|
|||||||
Reference in New Issue
Block a user