mmc: Convert pr_warning to pr_warn
[firefly-linux-kernel-4.4.55.git] / drivers / mmc / card / block.c
index ede41f05c392d499542dac45f9228f37364ecf30..1fa4c80ff88639e894ba8276387cb73cfbd3b93b 100644 (file)
@@ -977,7 +977,7 @@ static int mmc_blk_cmd_recovery(struct mmc_card *card, struct request *req,
                return ERR_CONTINUE;
 
        /* Now for stop errors.  These aren't fatal to the transfer. */
-       pr_err("%s: error %d sending stop command, original cmd response %#x, card status %#x\n",
+       pr_info("%s: error %d sending stop command, original cmd response %#x, card status %#x\n",
               req->rq_disk->disk_name, brq->stop.error,
               brq->cmd.resp[0], status);
 
@@ -1398,10 +1398,15 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
                if (disable_multi)
                        brq->data.blocks = 1;
 
-               /* Some controllers can't do multiblock reads due to hw bugs */
-               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) {
@@ -1923,8 +1928,8 @@ static int mmc_blk_issue_rw_rq(struct mmc_queue *mq, struct request *rqc)
                case MMC_BLK_ECC_ERR:
                        if (brq->data.blocks > 1) {
                                /* Redo read one sector at a time */
-                               pr_warning("%s: retrying using single block read\n",
-                                          req->rq_disk->disk_name);
+                               pr_warn("%s: retrying using single block read\n",
+                                       req->rq_disk->disk_name);
                                disable_multi = 1;
                                break;
                        }
@@ -2131,7 +2136,7 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card,
        md->disk->queue = md->queue.queue;
        md->disk->driverfs_dev = parent;
        set_disk_ro(md->disk, md->read_only || default_ro);
-       if (area_type & MMC_BLK_DATA_AREA_RPMB)
+       if (area_type & (MMC_BLK_DATA_AREA_RPMB | MMC_BLK_DATA_AREA_BOOT))
                md->disk->flags |= GENHD_FL_NO_PART_SCAN;
 
        /*