diff mbox

[U-Boot] imx: ipu: fix occasional hang following disabling of channel

Message ID 1428105597-15216-1-git-send-email-tharvey@gateworks.com
State Deferred
Delegated to: Stefano Babic
Headers show

Commit Message

Tim Harvey April 3, 2015, 11:59 p.m. UTC
It has been observed that some IMX6SDL SoC will hang appx 0.1% of boots
between disabling the ipu channel and disabling DMA preceeding an OS boot
unless an extra delay is added here.

The specific cause is still under investigation.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
---
 drivers/video/ipu_common.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Liu Ying April 4, 2015, 2:52 p.m. UTC | #1
Hi Tim,

Does your code base contain this patch[1]?
It probably addressed the same issue you meet.

[1] http://lists.denx.de/pipermail/u-boot/2014-February/174533.html

Regards,
Liu Ying

On Fri, Apr 03, 2015 at 04:59:57PM -0700, Tim Harvey wrote:
> It has been observed that some IMX6SDL SoC will hang appx 0.1% of boots
> between disabling the ipu channel and disabling DMA preceeding an OS boot
> unless an extra delay is added here.
> 
> The specific cause is still under investigation.
> 
> Signed-off-by: Tim Harvey <tharvey@gateworks.com>
> ---
>  drivers/video/ipu_common.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c
> index 5873531..3c1bbbb 100644
> --- a/drivers/video/ipu_common.c
> +++ b/drivers/video/ipu_common.c
> @@ -1109,6 +1109,7 @@ int32_t ipu_disable_channel(ipu_channel_t channel)
>  	if ((channel == MEM_BG_SYNC) || (channel == MEM_FG_SYNC) ||
>  	    (channel == MEM_DC_SYNC)) {
>  		ipu_dp_dc_disable(channel, 0);
> +		mdelay(50);
>  	}
>  
>  	/* Disable DMA channel(s) */
> -- 
> 1.9.1
>
Tim Harvey April 6, 2015, 1:50 p.m. UTC | #2
On Sat, Apr 4, 2015 at 7:52 AM, Liu Ying <Ying.Liu@freescale.com> wrote:
> Hi Tim,
>
> Does your code base contain this patch[1]?
> It probably addressed the same issue you meet.
>
> [1] http://lists.denx.de/pipermail/u-boot/2014-February/174533.html
>
> Regards,
> Liu Ying

Liu,

It certainly does not - this issue was encountered back on 2014-04. I
was hoping you might have some knowledge of this one!

I will re-test for this specific issue now that I am re-based on master.

Thanks,

Tim
diff mbox

Patch

diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c
index 5873531..3c1bbbb 100644
--- a/drivers/video/ipu_common.c
+++ b/drivers/video/ipu_common.c
@@ -1109,6 +1109,7 @@  int32_t ipu_disable_channel(ipu_channel_t channel)
 	if ((channel == MEM_BG_SYNC) || (channel == MEM_FG_SYNC) ||
 	    (channel == MEM_DC_SYNC)) {
 		ipu_dp_dc_disable(channel, 0);
+		mdelay(50);
 	}
 
 	/* Disable DMA channel(s) */