aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2006-01-09 16:12:17 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-01-09 16:12:17 -0500
commit788ee7b09883515f3a72a8f2a980df5e94f37e2c (patch)
treebc66a1450d6644e712d6ca7acc1ffd725d48c5fc
parentcfa7f52164d6cdcb6cea87386562c568da66ff9e (diff)
[MMC] Add DATA_MULTI flag
Some hosts need to know that a transfer will be multi-block. Add a data flag to indicate multiple data block transfers. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--drivers/mmc/mmc_block.c8
-rw-r--r--include/linux/mmc/mmc.h1
2 files changed, 8 insertions, 1 deletions
diff --git a/drivers/mmc/mmc_block.c b/drivers/mmc/mmc_block.c
index 198561d21710..f43cdfcbfd2c 100644
--- a/drivers/mmc/mmc_block.c
+++ b/drivers/mmc/mmc_block.c
@@ -200,7 +200,13 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
200 brq.data.flags |= MMC_DATA_WRITE; 200 brq.data.flags |= MMC_DATA_WRITE;
201 brq.data.blocks = 1; 201 brq.data.blocks = 1;
202 } 202 }
203 brq.mrq.stop = brq.data.blocks > 1 ? &brq.stop : NULL; 203
204 if (brq.data.blocks > 1) {
205 brq.data.flags |= MMC_DATA_MULTI;
206 brq.mrq.stop = &brq.stop;
207 } else {
208 brq.mrq.stop = NULL;
209 }
204 210
205 brq.data.sg = mq->sg; 211 brq.data.sg = mq->sg;
206 brq.data.sg_len = blk_rq_map_sg(req->q, req, brq.data.sg); 212 brq.data.sg_len = blk_rq_map_sg(req->q, req, brq.data.sg);
diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h
index aef6042f8f0b..86d491b3b73f 100644
--- a/include/linux/mmc/mmc.h
+++ b/include/linux/mmc/mmc.h
@@ -64,6 +64,7 @@ struct mmc_data {
64#define MMC_DATA_WRITE (1 << 8) 64#define MMC_DATA_WRITE (1 << 8)
65#define MMC_DATA_READ (1 << 9) 65#define MMC_DATA_READ (1 << 9)
66#define MMC_DATA_STREAM (1 << 10) 66#define MMC_DATA_STREAM (1 << 10)
67#define MMC_DATA_MULTI (1 << 11)
67 68
68 unsigned int bytes_xfered; 69 unsigned int bytes_xfered;
69 70