ARM: OMAP: Fix writes on some MMC cards
authorTony Lindgren <tony@atomide.com>
Thu, 11 Aug 2005 14:02:01 +0000 (07:02 -0700)
committerTony Lindgren <tony@atomide.com>
Thu, 11 Aug 2005 14:02:01 +0000 (07:02 -0700)
Some MMC cards don't set the R1_READY_FOR_DATA bit if EOFB
interrupt comes first. In this case we need to mask R1_READY_FOR_DATA
to avoid polling card status forever.

drivers/mmc/mmc_block.c
drivers/mmc/omap.c

index 808f913..09efec1 100644 (file)
@@ -270,6 +270,10 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
                        goto cmd_fail;
                }
 
+               /* No need to check card status after a read */
+               if (rq_data_dir(req) == READ)
+                       goto card_ready;
+
                do {
                        int err;
 
@@ -299,6 +303,8 @@ static int mmc_blk_issue_rq(struct mmc_queue *mq, struct request *req)
                        goto cmd_err;
 #endif
 
+       card_ready:
+
                /*
                 * A block was successfully transferred.
                 */
Simple merge