diff --git a/drivers/video/ipu_disp.c b/drivers/video/ipu_disp.c index cdbb5d5d7ac1658a0106084b750c874f11832d14..0cb1bd86ea6614ad05f936e8f330bf5c8a258483 100644 --- a/drivers/video/ipu_disp.c +++ b/drivers/video/ipu_disp.c @@ -723,6 +723,11 @@ void ipu_dp_dc_disable(ipu_channel_t channel, unsigned char swap) /* Make sure that we leave at the irq starting edge */ __raw_writel(IPUIRQ_2_MASK(irq), IPUIRQ_2_STATREG(irq)); do { + udelay(2000); + if (--timeout <= 0) { + printf("%s: timeout\n", __func__); + break; + } reg = __raw_readl(IPUIRQ_2_STATREG(irq)); } while (!(reg & IPUIRQ_2_MASK(irq)));