Commit 40f1b87c authored by Hans de Goede's avatar Hans de Goede
Browse files

sunxi: video: Give hotplug-detect (hpd) signal some time to show up



When using a hdmi powered hdmi to vga dongle, and cold booting a sunxi
device, the hpd detect code would not see the dongle (until a warm reboot),
because the dongle needs some time to boot.

Testing has shown that this dongle needs 213ms to respond on a cold boot,
so wait up to 300ms for a hpd signal to show up before giving up.
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Acked-by: default avatarIan Campbell <ijc@hellion.org.uk>
Acked-by: default avatarAnatolij Gustschin <agust@denx.de>
parent f300068d
......@@ -48,6 +48,7 @@ static int sunxi_hdmi_hpd_detect(void)
(struct sunxi_ccm_reg *)SUNXI_CCM_BASE;
struct sunxi_hdmi_reg * const hdmi =
(struct sunxi_hdmi_reg *)SUNXI_HDMI_BASE;
unsigned long tmo = timer_get_us() + 300000;
/* Set pll3 to 300MHz */
clock_set_pll3(300000000);
......@@ -68,9 +69,12 @@ static int sunxi_hdmi_hpd_detect(void)
writel(SUNXI_HDMI_CTRL_ENABLE, &hdmi->ctrl);
writel(SUNXI_HDMI_PAD_CTRL0_HDP, &hdmi->pad_ctrl0);
udelay(1000);
while (timer_get_us() < tmo) {
if (readl(&hdmi->hpd) & SUNXI_HDMI_HPD_DETECT)
return 1;
}
return (readl(&hdmi->hpd) & SUNXI_HDMI_HPD_DETECT) ? 1 : 0;
return 0;
}
static void sunxi_hdmi_shutdown(void)
......
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