]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
drm/bridge: tc358767: ensure DP is disabled before LT
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 28 May 2019 08:27:35 +0000 (11:27 +0300)
committerAndrzej Hajda <a.hajda@samsung.com>
Fri, 31 May 2019 13:41:23 +0000 (15:41 +0200)
Link training will sometimes fail if the DP link is enabled when
tc_main_link_enable() is called. The driver makes sure the DP link is
disabled when the DP output is disabled, and we never enable the DP
without first disabling it, so this should never happen.

However, as the HW behavior seems to be somewhat random if DP link has
erroneously been left enabled, let's add a WARN_ON() for the case and
set DP0CTL to 0.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190528082747.3631-13-tomi.valkeinen@ti.com
drivers/gpu/drm/bridge/tc358767.c

index f004db06dee9b7ac4f5c3324728f9e3dcb14304c..ccf4c8cfbb52ed9c288631697268ecb5f5f80099 100644 (file)
@@ -839,6 +839,10 @@ static int tc_main_link_enable(struct tc_data *tc)
 
        dev_dbg(tc->dev, "link enable\n");
 
+       tc_read(DP0CTL, &value);
+       if (WARN_ON(value & DP_EN))
+               tc_write(DP0CTL, 0);
+
        tc_write(DP0_SRCCTRL, tc_srcctrl(tc));
        /* SSCG and BW27 on DP1 must be set to the same as on DP0 */
        tc_write(DP1_SRCCTRL,