Kyle McMartin 8260f13
diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
Kyle McMartin a2366c0
index 06fe45c..63744cf 100644
Kyle McMartin 8260f13
--- a/drivers/dma/amba-pl08x.c
Kyle McMartin 8260f13
+++ b/drivers/dma/amba-pl08x.c
Kyle McMartin 8260f13
@@ -886,8 +886,8 @@ static int pl08x_fill_llis_for_desc(struct pl08x_driver_data *pl08x,
Kyle McMartin 8260f13
 				return 0;
Kyle McMartin 8260f13
 			}
Kyle McMartin 8260f13
 
Kyle McMartin 8260f13
-			if ((bd.srcbus.addr % bd.srcbus.buswidth) ||
Kyle McMartin 8260f13
-					(bd.dstbus.addr % bd.dstbus.buswidth)) {
Kyle McMartin 8260f13
+			if ((((u8)(bd.srcbus.addr & 0xff)) % bd.srcbus.buswidth) ||
Kyle McMartin 8260f13
+					(((u8)(bd.dstbus.addr & 0xff)) % bd.dstbus.buswidth)) {
Kyle McMartin 8260f13
 				dev_err(&pl08x->adev->dev,
Kyle McMartin 8260f13
 					"%s src & dst address must be aligned to src"
Kyle McMartin 8260f13
 					" & dst width if peripheral is flow controller",
Kyle McMartin a2366c0
@@ -908,9 +908,8 @@ static int pl08x_fill_llis_for_desc(struct pl08x_driver_data *pl08x,
Kyle McMartin 8260f13
 		 */
Kyle McMartin 8260f13
 		if (bd.remainder < mbus->buswidth)
Kyle McMartin 8260f13
 			early_bytes = bd.remainder;
Kyle McMartin 8260f13
-		else if ((mbus->addr) % (mbus->buswidth)) {
Kyle McMartin a2366c0
-			early_bytes = mbus->buswidth - (mbus->addr) %
Kyle McMartin a2366c0
-				(mbus->buswidth);
Kyle McMartin a2366c0
+		else if ((early_bytes = (u8)(mbus->addr & 0xff) % mbus->buswidth)) {
Kyle McMartin a2366c0
+			early_bytes = mbus->buswidth - early_bytes;
Kyle McMartin 8260f13
 			if ((bd.remainder - early_bytes) < mbus->buswidth)
Kyle McMartin a2366c0
 				early_bytes = bd.remainder;
Kyle McMartin a2366c0
 		}
Kyle McMartin a2366c0
@@ -928,7 +927,7 @@ static int pl08x_fill_llis_for_desc(struct pl08x_driver_data *pl08x,
Kyle McMartin 8260f13
 			 * Master now aligned
Kyle McMartin 8260f13
 			 * - if slave is not then we must set its width down
Kyle McMartin 8260f13
 			 */
Kyle McMartin 8260f13
-			if (sbus->addr % sbus->buswidth) {
Kyle McMartin 8260f13
+			if (((u8)(sbus->addr & 0xff)) % sbus->buswidth) {
Kyle McMartin 8260f13
 				dev_dbg(&pl08x->adev->dev,
Kyle McMartin 8260f13
 					"%s set down bus width to one byte\n",
Kyle McMartin 8260f13
 					__func__);