aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJernej Skrabec <jernej.skrabec@siol.net>2018-02-14 15:08:57 -0500
committerMaxime Ripard <maxime.ripard@bootlin.com>2018-02-16 03:32:03 -0500
commit46d1b42bfac6ea085169a23b266178719b19a778 (patch)
tree6936d2eaf54c2093a57ac18f26a0443a89604acb
parent456400582e8231a5cbcfe74c1846ccbd1719c652 (diff)
drm/bridge/synopsys: dw-hdmi: Enable workaround for v1.32a
Allwinner SoCs have dw hdmi controller v1.32a which exhibits same magenta line issue as i.MX6Q and i.MX6DL. Enable workaround for it. Tests show that one iteration is enough. Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Archit Taneja <architt@codeaurora.org> Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180214200906.31509-4-jernej.skrabec@siol.net
-rw-r--r--drivers/gpu/drm/bridge/synopsys/dw-hdmi.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index a38db40ce990..7ca14d7325b5 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -1634,9 +1634,10 @@ static void dw_hdmi_clear_overflow(struct dw_hdmi *hdmi)
1634 * then write one of the FC registers several times. 1634 * then write one of the FC registers several times.
1635 * 1635 *
1636 * The number of iterations matters and depends on the HDMI TX revision 1636 * The number of iterations matters and depends on the HDMI TX revision
1637 * (and possibly on the platform). So far only i.MX6Q (v1.30a) and 1637 * (and possibly on the platform). So far i.MX6Q (v1.30a), i.MX6DL
1638 * i.MX6DL (v1.31a) have been identified as needing the workaround, with 1638 * (v1.31a) and multiple Allwinner SoCs (v1.32a) have been identified
1639 * 4 and 1 iterations respectively. 1639 * as needing the workaround, with 4 iterations for v1.30a and 1
1640 * iteration for others.
1640 */ 1641 */
1641 1642
1642 switch (hdmi->version) { 1643 switch (hdmi->version) {
@@ -1644,6 +1645,7 @@ static void dw_hdmi_clear_overflow(struct dw_hdmi *hdmi)
1644 count = 4; 1645 count = 4;
1645 break; 1646 break;
1646 case 0x131a: 1647 case 0x131a:
1648 case 0x132a:
1647 count = 1; 1649 count = 1;
1648 break; 1650 break;
1649 default: 1651 default: