|
|
@@ -1402,6 +1402,16 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
|
|
|
if (card->host->caps2 & MMC_CAP2_NO_MULTI_READ &&
|
|
|
rq_data_dir(req) == READ)
|
|
|
brq->data.blocks = 1;
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Some controllers have HW issues while operating
|
|
|
+ * in multiple I/O mode
|
|
|
+ */
|
|
|
+ if (card->host->ops->multi_io_quirk)
|
|
|
+ brq->data.blocks = card->host->ops->multi_io_quirk(card,
|
|
|
+ (rq_data_dir(req) == READ) ?
|
|
|
+ MMC_DATA_READ : MMC_DATA_WRITE,
|
|
|
+ brq->data.blocks);
|
|
|
}
|
|
|
|
|
|
if (brq->data.blocks > 1 || do_rel_wr) {
|