diff options
| author | Vasily Khoruzhick <[email protected]> | 2017-11-28 22:33:27 -0800 |
|---|---|---|
| committer | Jagan Teki <[email protected]> | 2017-12-02 22:01:23 +0530 |
| commit | 64089178219371a512ddca8016d78bfdbe84565d (patch) | |
| tree | beeec713225d8a1ba7b05893806c28e7a67d5ab4 | |
| parent | 3cfecee49c6fa97a4256f770d12ff476941e5a88 (diff) | |
sunxi: video: HDMI: split VSYNC and HSYNC polarity settings
These are actually different bits, and since some monitors (Benq BL2420PT)
have modes with different HSYNC and VSYNC polarity, we should set them
independently
Tested on Pine64-LTS with Benq BL2420PT monitor.
Signed-off-by: Vasily Khoruzhick <[email protected]>
Reviewed-by: Anatolij Gustschin <[email protected]>
Acked-by: Maxime Ripard <[email protected]>
Reviewed-by: Jagan Teki <[email protected]>
| -rw-r--r-- | drivers/video/sunxi/sunxi_dw_hdmi.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/video/sunxi/sunxi_dw_hdmi.c b/drivers/video/sunxi/sunxi_dw_hdmi.c index 33920a2b676..4f01d1bded2 100644 --- a/drivers/video/sunxi/sunxi_dw_hdmi.c +++ b/drivers/video/sunxi/sunxi_dw_hdmi.c @@ -304,15 +304,11 @@ static int sunxi_dw_hdmi_enable(struct udevice *dev, int panel_bpp, sunxi_dw_hdmi_lcdc_init(priv->mux, edid, panel_bpp); - /* - * Condition in original code is a bit weird. This is attempt - * to make it more reasonable and it works. It could be that - * bits and conditions are related and should be separated. - */ - if (!((edid->flags & DISPLAY_FLAGS_HSYNC_HIGH) && - (edid->flags & DISPLAY_FLAGS_VSYNC_HIGH))) { - setbits_le32(&phy->pol, 0x300); - } + if (edid->flags & DISPLAY_FLAGS_HSYNC_LOW) + setbits_le32(&phy->pol, 0x200); + + if (edid->flags & DISPLAY_FLAGS_VSYNC_LOW) + setbits_le32(&phy->pol, 0x100); setbits_le32(&phy->ctrl, 0xf << 12); |
