diff options
author | Tom Rini <trini@ti.com> | 2012-11-19 09:28:04 -0700 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2012-11-19 09:28:04 -0700 |
commit | 178d0cc1a4c73c3341afbeb2a93b172de8c96bd1 (patch) | |
tree | f4ccb38889b6ae9d2092b8ce43b8f6d422c900cb /drivers/video/ipu_common.c | |
parent | bb367b95f9204115bd6eac82e839b5590e6da4eb (diff) | |
parent | 30ea4be921634de193236355f76e7870f1a3cb89 (diff) |
Merge branch 'master' of git://git.denx.de/u-boot-video
Diffstat (limited to 'drivers/video/ipu_common.c')
-rw-r--r-- | drivers/video/ipu_common.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c index 0f2d113a6f..ad4af5283a 100644 --- a/drivers/video/ipu_common.c +++ b/drivers/video/ipu_common.c @@ -94,6 +94,7 @@ struct ipu_ch_param { temp1; \ }) +#define IPU_SW_RST_TOUT_USEC (10000) void clk_enable(struct clk *clk) { @@ -398,11 +399,20 @@ void ipu_reset(void) { u32 *reg; u32 value; + int timeout = IPU_SW_RST_TOUT_USEC; reg = (u32 *)SRC_BASE_ADDR; value = __raw_readl(reg); value = value | SW_IPU_RST; __raw_writel(value, reg); + + while (__raw_readl(reg) & SW_IPU_RST) { + udelay(1); + if (!(timeout--)) { + printf("ipu software reset timeout\n"); + break; + } + }; } /* |