]> err.no Git - linux-2.6/commitdiff
[MMC] Add DATA_MULTI flag
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Mon, 9 Jan 2006 21:12:17 +0000 (21:12 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 9 Jan 2006 21:12:17 +0000 (21:12 +0000)
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>
drivers/mmc/mmc_block.c
include/linux/mmc/mmc.h

index 198561d21710c0c9139746926ce107d99c93a782..f43cdfcbfd2cdd0ad503b50fe9667b92e81b1512 100644 (file)
@@ -200,7 +200,13 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
                        brq.data.flags |= MMC_DATA_WRITE;
                        brq.data.blocks = 1;
                }
-               brq.mrq.stop = brq.data.blocks > 1 ? &brq.stop : NULL;
+
+               if (brq.data.blocks > 1) {
+                       brq.data.flags |= MMC_DATA_MULTI;
+                       brq.mrq.stop = &brq.stop;
+               } else {
+                       brq.mrq.stop = NULL;
+               }
 
                brq.data.sg = mq->sg;
                brq.data.sg_len = blk_rq_map_sg(req->q, req, brq.data.sg);
index aef6042f8f0ba0366daf02883a316b464a7817bc..86d491b3b73f0147f5fddaca16155c22af2bc59a 100644 (file)
@@ -64,6 +64,7 @@ struct mmc_data {
 #define MMC_DATA_WRITE (1 << 8)
 #define MMC_DATA_READ  (1 << 9)
 #define MMC_DATA_STREAM        (1 << 10)
+#define MMC_DATA_MULTI (1 << 11)
 
        unsigned int            bytes_xfered;