diff options
author | Guodong Xu <guodong.xu@linaro.org> | 2013-04-24 14:03:00 +0800 |
---|---|---|
committer | Guodong Xu <guodong.xu@linaro.org> | 2013-04-24 14:03:00 +0800 |
commit | 2532daaaca4dcb8bf22cbcb9e6501de47d3da975 (patch) | |
tree | 201eed34356c64a133ad8ee65daa13b2f3ad5823 | |
parent | 3bc3548c5ba4d104cf5651851753c7e9bc152de1 (diff) | |
parent | 65ff0e7bc464683e7297c01dfc62143f4f15899e (diff) |
Merge remote-tracking branch 'origin/dma_4.13' into integration-linux-mainline
-rw-r--r-- | drivers/dma/k3dma.c | 10 |
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 |