diff options
author | Per Forlin <per.forlin@stericsson.com> | 2011-09-28 03:32:20 -0400 |
---|---|---|
committer | Fabio Baltieri <fabio.baltieri@linaro.org> | 2013-01-14 04:50:15 -0500 |
commit | 8a5d2039ab9050a8a2e649eaf3ca4e372a7709f1 (patch) | |
tree | 8b597cd23c8a58c6a0ff33da85a9bb4b7553c8da /drivers/dma/ste_dma40_ll.c | |
parent | 0fd602235dd702d16722857da748d15c26b81ed1 (diff) |
dmaengine: ste_dma40: use writel_relaxed for lcxa
lcpa and lcla are written often and the cache_sync() overhead in writel
is costly, especially for wlan where every single network packet (in RX
mode) corresponds to a separate DMA transfer.
Signed-off-by: Per Forlin <per.forlin@stericsson.com>
Reviewed-by: Narayanan Gopalakrishnan <narayanan.gopalakrishnan@stericsson.com>
Reviewed-by: Rabin Vincent <rabin.vincent@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Diffstat (limited to 'drivers/dma/ste_dma40_ll.c')
-rw-r--r-- | drivers/dma/ste_dma40_ll.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/drivers/dma/ste_dma40_ll.c b/drivers/dma/ste_dma40_ll.c index d64b72ae2dc8..1cfe7ab50c6b 100644 --- a/drivers/dma/ste_dma40_ll.c +++ b/drivers/dma/ste_dma40_ll.c | |||
@@ -332,10 +332,10 @@ void d40_log_lli_lcpa_write(struct d40_log_lli_full *lcpa, | |||
332 | { | 332 | { |
333 | d40_log_lli_link(lli_dst, lli_src, next, flags); | 333 | d40_log_lli_link(lli_dst, lli_src, next, flags); |
334 | 334 | ||
335 | writel(lli_src->lcsp02, &lcpa[0].lcsp0); | 335 | writel_relaxed(lli_src->lcsp02, &lcpa[0].lcsp0); |
336 | writel(lli_src->lcsp13, &lcpa[0].lcsp1); | 336 | writel_relaxed(lli_src->lcsp13, &lcpa[0].lcsp1); |
337 | writel(lli_dst->lcsp02, &lcpa[0].lcsp2); | 337 | writel_relaxed(lli_dst->lcsp02, &lcpa[0].lcsp2); |
338 | writel(lli_dst->lcsp13, &lcpa[0].lcsp3); | 338 | writel_relaxed(lli_dst->lcsp13, &lcpa[0].lcsp3); |
339 | } | 339 | } |
340 | 340 | ||
341 | void d40_log_lli_lcla_write(struct d40_log_lli *lcla, | 341 | void d40_log_lli_lcla_write(struct d40_log_lli *lcla, |
@@ -345,10 +345,10 @@ void d40_log_lli_lcla_write(struct d40_log_lli *lcla, | |||
345 | { | 345 | { |
346 | d40_log_lli_link(lli_dst, lli_src, next, flags); | 346 | d40_log_lli_link(lli_dst, lli_src, next, flags); |
347 | 347 | ||
348 | writel(lli_src->lcsp02, &lcla[0].lcsp02); | 348 | writel_relaxed(lli_src->lcsp02, &lcla[0].lcsp02); |
349 | writel(lli_src->lcsp13, &lcla[0].lcsp13); | 349 | writel_relaxed(lli_src->lcsp13, &lcla[0].lcsp13); |
350 | writel(lli_dst->lcsp02, &lcla[1].lcsp02); | 350 | writel_relaxed(lli_dst->lcsp02, &lcla[1].lcsp02); |
351 | writel(lli_dst->lcsp13, &lcla[1].lcsp13); | 351 | writel_relaxed(lli_dst->lcsp13, &lcla[1].lcsp13); |
352 | } | 352 | } |
353 | 353 | ||
354 | static void d40_log_fill_lli(struct d40_log_lli *lli, | 354 | static void d40_log_fill_lli(struct d40_log_lli *lli, |