tc hangup fix
diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
index eea8bd3..cd9635e 100644
--- a/drivers/dma/amba-pl08x.c
+++ b/drivers/dma/amba-pl08x.c
@@ -2284,7 +2284,7 @@ static void pl08x_ensure_on(struct pl08x_driver_data *pl08x)
static irqreturn_t pl08x_irq(int irq, void *dev)
{
struct pl08x_driver_data *pl08x = dev;
- u32 mask = 0, err, tc, i;
+ u32 mask = 0, err, tc, i, val;
/* check & clear - ERR & TC interrupts */
err = readl(pl08x->base + PL080_ERR_STATUS);
@@ -2296,6 +2296,11 @@ static irqreturn_t pl08x_irq(int irq, void *dev)
tc = readl(pl08x->base + PL080_TC_STATUS);
if (tc)
writel(tc, pl08x->base + PL080_TC_CLEAR);
+ val = readl(pl08x->base + PL080_TC_STATUS);
+ if (val) {
+ dev_err(&pl08x->adev->dev, "%s TC didn\'t clear 0x%08x\n",
+ __func__, val);
+ }
if (!err && !tc)
return IRQ_NONE;