Commit 165cccc8 authored by Xinliang Liu's avatar Xinliang Liu

drm/hisilicon: Fix DRM_INFO printed issue

This patch fixed the bellow no DRM_INFO is printed issue:

if (!delay_count)
	DRM_INFO("phylock and phystopstateclklane is not ready.\n");

There will some printed issues with above info, under certain
circumstances:

If ((BIT(0) | BIT(2)) & val) is never true, break will not happen and
delay_count will be max u32 value (?), and no DRM_INFO is printed.

Also if ((BIT(0) | BIT(2)) & val) is true at the last possible
loop round, break happens, but now delay_count is already zero
( because of earlier delay_count-- ) and DRM_INFO is erroneously
printed.

Thanks to Juha Leppänen, he reports to me this issue.
Signed-off-by: default avatarXinliang Liu <xinliang.liu@linaro.org>
Reported-by: default avatarJuha Leppänen <juha_efku@dnainternet.net>
parent 12cb4c87
...@@ -430,12 +430,13 @@ static void dsi_set_mipi_phy(void __iomem *base, ...@@ -430,12 +430,13 @@ static void dsi_set_mipi_phy(void __iomem *base,
* wait for phy's clock ready * wait for phy's clock ready
*/ */
delay_count = 100; delay_count = 100;
while (delay_count--) { while (delay_count) {
val = readl(base + PHY_STATUS); val = readl(base + PHY_STATUS);
if ((BIT(0) | BIT(2)) & val) if ((BIT(0) | BIT(2)) & val)
break; break;
udelay(1); udelay(1);
delay_count--;
} }
if (!delay_count) if (!delay_count)
......
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