mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 10:58:48 +09:00
drm/rockchip: dw-hdmi: Fix hdmi timing err when switch color mode
When switch color new hdmi phy config may not be set because hdmi phy is already on in upstream code. So we should power down hdmi phy first before power on hdmi phy when set new hdmi phy config. Change-Id: Icb1cf29931f1084cc70b0b320137260491497771 Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
This commit is contained in:
@@ -933,20 +933,25 @@ static const struct drm_encoder_helper_funcs dw_hdmi_rockchip_encoder_helper_fun
|
||||
.mode_set = dw_hdmi_rockchip_encoder_mode_set,
|
||||
};
|
||||
|
||||
static int dw_hdmi_rockchip_genphy_init(struct dw_hdmi *dw_hdmi, void *data,
|
||||
const struct drm_display_info *display,
|
||||
const struct drm_display_mode *mode)
|
||||
static void
|
||||
dw_hdmi_rockchip_genphy_disable(struct dw_hdmi *dw_hdmi, void *data)
|
||||
{
|
||||
struct rockchip_hdmi *hdmi = (struct rockchip_hdmi *)data;
|
||||
|
||||
return phy_power_on(hdmi->phy);
|
||||
while (hdmi->phy->power_count > 0)
|
||||
phy_power_off(hdmi->phy);
|
||||
}
|
||||
|
||||
static void dw_hdmi_rockchip_genphy_disable(struct dw_hdmi *dw_hdmi, void *data)
|
||||
static int
|
||||
dw_hdmi_rockchip_genphy_init(struct dw_hdmi *dw_hdmi, void *data,
|
||||
const struct drm_display_info *display,
|
||||
const struct drm_display_mode *mode)
|
||||
{
|
||||
struct rockchip_hdmi *hdmi = (struct rockchip_hdmi *)data;
|
||||
|
||||
phy_power_off(hdmi->phy);
|
||||
dw_hdmi_rockchip_genphy_disable(dw_hdmi, data);
|
||||
dw_hdmi_set_high_tmds_clock_ratio(dw_hdmi, display);
|
||||
return phy_power_on(hdmi->phy);
|
||||
}
|
||||
|
||||
static void dw_hdmi_rk3228_setup_hpd(struct dw_hdmi *dw_hdmi, void *data)
|
||||
|
||||
Reference in New Issue
Block a user