diff options
author | Haojian Zhuang <haojian.zhuang@linaro.org> | 2013-08-22 17:04:13 +0800 |
---|---|---|
committer | Zhangfei Gao <zhangfei.gao@linaro.org> | 2013-09-09 16:09:56 +0800 |
commit | fdeee9b388361f55c94860ab8952062fb2cf9fcb (patch) | |
tree | 581d16f5ec7a1dcc835b1ca2ec7f02bc24f01c2d | |
parent | 80477a20fe39a559b0efb2a74f63a09150d21ec3 (diff) |
fb: use busy loop to replace detecting phy
In some boards, system fails on detecting dsi command status. So use
busy loop as workaround.
Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
-rw-r--r-- | drivers/video/hisilicon/hi3620_dsi.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/video/hisilicon/hi3620_dsi.c b/drivers/video/hisilicon/hi3620_dsi.c index f945a7a417fa..e7140d2accb2 100644 --- a/drivers/video/hisilicon/hi3620_dsi.c +++ b/drivers/video/hisilicon/hi3620_dsi.c @@ -446,12 +446,20 @@ static int recv_generic_pkt(void __iomem *base, u8 *val, int len) static void wait_phy_ready(void __iomem *base) { +#if 0 unsigned int status; do { cpu_relax(); status = readl_relaxed(base + DSI_PHY_STATUS); } while (!(status & DSI_PHY_STOP_STATE0_LANE)); +#else + /* + * In some board, it always loop as dead. + * So use delay as workaround. + */ + msleep(5); +#endif } int set_packet(struct device *dev, u8 *cmd, int nr_payload) |