Commit 243c4b78 authored by Sean Paul's avatar Sean Paul

Merge drm-misc-next-fixes-2019-05-20 into drm-misc-fixes

Picking up 3 sun4i patches that missed the last drm-misc-next-fixes pull
request for 5.2
Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
parents a188339c 51a0d1a9
...@@ -457,8 +457,9 @@ static void sun6i_dsi_setup_inst_loop(struct sun6i_dsi *dsi, ...@@ -457,8 +457,9 @@ static void sun6i_dsi_setup_inst_loop(struct sun6i_dsi *dsi,
u16 delay = 50 - 1; u16 delay = 50 - 1;
if (device->mode_flags & MIPI_DSI_MODE_VIDEO_BURST) { if (device->mode_flags & MIPI_DSI_MODE_VIDEO_BURST) {
delay = (mode->htotal - mode->hdisplay) * 150; u32 hsync_porch = (mode->htotal - mode->hdisplay) * 150;
delay /= (mode->clock / 1000) * 8;
delay = (hsync_porch / ((mode->clock / 1000) * 8));
delay -= 50; delay -= 50;
} }
......
...@@ -293,7 +293,8 @@ static int sun8i_hdmi_phy_config_h3(struct dw_hdmi *hdmi, ...@@ -293,7 +293,8 @@ static int sun8i_hdmi_phy_config_h3(struct dw_hdmi *hdmi,
SUN8I_HDMI_PHY_ANA_CFG2_REG_BIGSW | SUN8I_HDMI_PHY_ANA_CFG2_REG_BIGSW |
SUN8I_HDMI_PHY_ANA_CFG2_REG_SLV(4); SUN8I_HDMI_PHY_ANA_CFG2_REG_SLV(4);
ana_cfg3_init |= SUN8I_HDMI_PHY_ANA_CFG3_REG_AMPCK(9) | ana_cfg3_init |= SUN8I_HDMI_PHY_ANA_CFG3_REG_AMPCK(9) |
SUN8I_HDMI_PHY_ANA_CFG3_REG_AMP(13); SUN8I_HDMI_PHY_ANA_CFG3_REG_AMP(13) |
SUN8I_HDMI_PHY_ANA_CFG3_REG_EMP(3);
} }
regmap_update_bits(phy->regs, SUN8I_HDMI_PHY_ANA_CFG1_REG, regmap_update_bits(phy->regs, SUN8I_HDMI_PHY_ANA_CFG1_REG,
...@@ -672,22 +673,13 @@ int sun8i_hdmi_phy_probe(struct sun8i_dw_hdmi *hdmi, struct device_node *node) ...@@ -672,22 +673,13 @@ int sun8i_hdmi_phy_probe(struct sun8i_dw_hdmi *hdmi, struct device_node *node)
goto err_put_clk_pll0; goto err_put_clk_pll0;
} }
} }
ret = sun8i_phy_clk_create(phy, dev,
phy->variant->has_second_pll);
if (ret) {
dev_err(dev, "Couldn't create the PHY clock\n");
goto err_put_clk_pll1;
}
clk_prepare_enable(phy->clk_phy);
} }
phy->rst_phy = of_reset_control_get_shared(node, "phy"); phy->rst_phy = of_reset_control_get_shared(node, "phy");
if (IS_ERR(phy->rst_phy)) { if (IS_ERR(phy->rst_phy)) {
dev_err(dev, "Could not get phy reset control\n"); dev_err(dev, "Could not get phy reset control\n");
ret = PTR_ERR(phy->rst_phy); ret = PTR_ERR(phy->rst_phy);
goto err_disable_clk_phy; goto err_put_clk_pll1;
} }
ret = reset_control_deassert(phy->rst_phy); ret = reset_control_deassert(phy->rst_phy);
...@@ -708,18 +700,29 @@ int sun8i_hdmi_phy_probe(struct sun8i_dw_hdmi *hdmi, struct device_node *node) ...@@ -708,18 +700,29 @@ int sun8i_hdmi_phy_probe(struct sun8i_dw_hdmi *hdmi, struct device_node *node)
goto err_disable_clk_bus; goto err_disable_clk_bus;
} }
if (phy->variant->has_phy_clk) {
ret = sun8i_phy_clk_create(phy, dev,
phy->variant->has_second_pll);
if (ret) {
dev_err(dev, "Couldn't create the PHY clock\n");
goto err_disable_clk_mod;
}
clk_prepare_enable(phy->clk_phy);
}
hdmi->phy = phy; hdmi->phy = phy;
return 0; return 0;
err_disable_clk_mod:
clk_disable_unprepare(phy->clk_mod);
err_disable_clk_bus: err_disable_clk_bus:
clk_disable_unprepare(phy->clk_bus); clk_disable_unprepare(phy->clk_bus);
err_deassert_rst_phy: err_deassert_rst_phy:
reset_control_assert(phy->rst_phy); reset_control_assert(phy->rst_phy);
err_put_rst_phy: err_put_rst_phy:
reset_control_put(phy->rst_phy); reset_control_put(phy->rst_phy);
err_disable_clk_phy:
clk_disable_unprepare(phy->clk_phy);
err_put_clk_pll1: err_put_clk_pll1:
clk_put(phy->clk_pll1); clk_put(phy->clk_pll1);
err_put_clk_pll0: err_put_clk_pll0:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment