From: Michal Suchanek Date: Thu, 23 Jul 2015 16:04:49 +0000 (+0200) Subject: dmaengine: pl330: do not emit loop for 1 byte transfer. X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=31495d60a06524f37a9ea66d7d62ce0418ef3506;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git dmaengine: pl330: do not emit loop for 1 byte transfer. When there is only one burst required do not emit loop instructions to loop exactly once. Emit just the body of the loop. Signed-off-by: Michal Suchanek Signed-off-by: Vinod Koul --- diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index f513f77b1d85..257e0d90475a 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -1198,6 +1198,9 @@ static inline int _loop(unsigned dry_run, u8 buf[], unsigned lcnt0, lcnt1, ljmp0, ljmp1; struct _arg_LPEND lpend; + if (*bursts == 1) + return _bursts(dry_run, buf, pxs, 1); + /* Max iterations possible in DMALP is 256 */ if (*bursts >= 256*256) { lcnt1 = 256;