aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSantosh Shilimkar <santosh.shilimkar@ti.com>2013-07-29 09:20:15 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2013-10-31 10:49:27 -0400
commit8e0cb8a1f6acf673ef9ab573087020ebafa8da51 (patch)
treeca8e25ec4b7c887abba2d7d2d9a6d2a81c330cf5
parent7d35496dd98229cdf923238367fd3b3833fbde52 (diff)
ARM: 7797/1: mmc: Use dma_max_pfn(dev) helper for bounce_limit calculations
DMA bounce limit is the maximum direct DMA'able memory beyond which bounce buffers has to be used to perform dma operations. MMC queue layr relies on dma_mask but its calculation is based on max_*pfn which don't have uniform meaning across architectures. So make use of dma_max_pfn() which is expected to return the DMAable maximum pfn value across architectures. Cc: Chris Ball <cjb@laptop.org> Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--drivers/mmc/card/queue.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c
index fa9632eb63f1..357bbc54fe4b 100644
--- a/drivers/mmc/card/queue.c
+++ b/drivers/mmc/card/queue.c
@@ -15,6 +15,7 @@
15#include <linux/freezer.h> 15#include <linux/freezer.h>
16#include <linux/kthread.h> 16#include <linux/kthread.h>
17#include <linux/scatterlist.h> 17#include <linux/scatterlist.h>
18#include <linux/dma-mapping.h>
18 19
19#include <linux/mmc/card.h> 20#include <linux/mmc/card.h>
20#include <linux/mmc/host.h> 21#include <linux/mmc/host.h>
@@ -196,7 +197,7 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card,
196 struct mmc_queue_req *mqrq_prev = &mq->mqrq[1]; 197 struct mmc_queue_req *mqrq_prev = &mq->mqrq[1];
197 198
198 if (mmc_dev(host)->dma_mask && *mmc_dev(host)->dma_mask) 199 if (mmc_dev(host)->dma_mask && *mmc_dev(host)->dma_mask)
199 limit = *mmc_dev(host)->dma_mask; 200 limit = dma_max_pfn(mmc_dev(host)) << PAGE_SHIFT;
200 201
201 mq->card = card; 202 mq->card = card;
202 mq->queue = blk_init_queue(mmc_request_fn, lock); 203 mq->queue = blk_init_queue(mmc_request_fn, lock);