mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 10:58:48 +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,
|
||||
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_link_disable(dp);
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user