diff options
author | Jernej Skrabec <jernej.skrabec@siol.net> | 2018-02-14 15:08:57 -0500 |
---|---|---|
committer | Maxime Ripard <maxime.ripard@bootlin.com> | 2018-02-16 03:32:03 -0500 |
commit | 46d1b42bfac6ea085169a23b266178719b19a778 (patch) | |
tree | 6936d2eaf54c2093a57ac18f26a0443a89604acb | |
parent | 456400582e8231a5cbcfe74c1846ccbd1719c652 (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.c | 8 |
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: |