aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuodong Xu <guodong.xu@linaro.org>2013-04-24 14:03:00 +0800
committerGuodong Xu <guodong.xu@linaro.org>2013-04-24 14:03:00 +0800
commit2532daaaca4dcb8bf22cbcb9e6501de47d3da975 (patch)
tree201eed34356c64a133ad8ee65daa13b2f3ad5823
parent3bc3548c5ba4d104cf5651851753c7e9bc152de1 (diff)
parent65ff0e7bc464683e7297c01dfc62143f4f15899e (diff)
Merge remote-tracking branch 'origin/dma_4.13' into integration-linux-mainline
-rw-r--r--drivers/dma/k3dma.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/dma/k3dma.c b/drivers/dma/k3dma.c
index 84ddea449ef4..9d3d4b94b84a 100644
--- a/drivers/dma/k3dma.c
+++ b/drivers/dma/k3dma.c
@@ -62,7 +62,7 @@ struct k3_desc_hw {
u32 config;
} __aligned(32);
-#define DMA_MAX_SIZE 0x1fff
+#define DMA_MAX_SIZE 0x1ffc
#define LLI_SIZE 0x2000
#define LLI_MAX_NUM (LLI_SIZE / sizeof(struct k3_desc_hw))
@@ -178,7 +178,7 @@ static irqreturn_t k3_dma_int_handler(int irq, void *dev_id)
u32 tc1 = readl_relaxed(d->base + INT_TC1);
u32 err1 = readl_relaxed(d->base + INT_ERR1);
u32 err2 = readl_relaxed(d->base + INT_ERR2);
- u32 i, irq_num = 0;
+ u32 i, irq_chan = 0;
while (stat) {
i = __ffs(stat);
@@ -187,17 +187,17 @@ static irqreturn_t k3_dma_int_handler(int irq, void *dev_id)
p = &d->phy[i];
p->ds_done = p->ds_run;
vchan_cookie_complete(&p->ds_run->vd);
- irq_num++;
+ irq_chan |= BIT(i);
}
if (unlikely((err1 & BIT(i)) || (err2 & BIT(i))))
dev_warn(d->slave.dev, "DMA ERR\n");
}
- writel_relaxed(tc1, d->base + INT_TC1_RAW);
+ writel_relaxed(irq_chan, d->base + INT_TC1_RAW);
writel_relaxed(err1, d->base + INT_ERR1_RAW);
writel_relaxed(err2, d->base + INT_ERR2_RAW);
- if (irq_num) {
+ if (irq_chan) {
tasklet_schedule(&d->task);
return IRQ_HANDLED;
} else