ASoC: samsung-idma: avoid 64-bit division
authorArnd Bergmann <arnd@arndb.de>
Tue, 29 Apr 2014 11:18:25 +0000 (19:18 +0800)
committerMark Brown <broonie@linaro.org>
Thu, 1 May 2014 03:31:13 +0000 (20:31 -0700)
dma_addr_t may be 64 bit wide, which causes a build failure
when doing a division on it. Here it is safe to cast to an
u32 type, which avoids the problem.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Xia Kaixu <kaixu.xia@linaro.org>
Tested-by: Tushar Behera <tushar.behera@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/samsung/idma.c

index 3d5cf15..e9891b4 100644 (file)
@@ -274,7 +274,7 @@ static irqreturn_t iis_irq(int irqno, void *dev_id)
 
                addr = readl(idma.regs + I2SLVL0ADDR) - idma.lp_tx_addr;
                addr += prtd->periodsz;
-               addr %= (prtd->end - prtd->start);
+               addr %= (u32)(prtd->end - prtd->start);
                addr += idma.lp_tx_addr;
 
                writel(addr, idma.regs + I2SLVL0ADDR);