diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index c69afb5e264e..daa6a179bdbc 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@ -1401,6 +1401,7 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, brq->data.blocks = card->host->ops->multi_io_quirk(card, (rq_data_dir(req) == READ) ? MMC_DATA_READ : MMC_DATA_WRITE, + brq->cmd.arg, brq->data.blocks); } diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index f84cfb01716d..fec8c12d7a51 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -1798,7 +1798,9 @@ static int omap_hsmmc_disable_fclk(struct mmc_host *mmc) } static int omap_hsmmc_multi_io_quirk(struct mmc_card *card, - unsigned int direction, int blk_size) + unsigned int direction, + u32 blk_pos, + int blk_size) { /* This controller can't do multiblock reads due to hw bugs */ if (direction == MMC_DATA_READ) diff --git a/drivers/mmc/host/sh_mobile_sdhi.c b/drivers/mmc/host/sh_mobile_sdhi.c index 6906a905cd54..1fb7577fda9b 100644 --- a/drivers/mmc/host/sh_mobile_sdhi.c +++ b/drivers/mmc/host/sh_mobile_sdhi.c @@ -170,7 +170,9 @@ static int sh_mobile_sdhi_write16_hook(struct tmio_mmc_host *host, int addr) } static int sh_mobile_sdhi_multi_io_quirk(struct mmc_card *card, - unsigned int direction, int blk_size) + unsigned int direction, + u32 blk_pos, + int blk_size) { /* * In Renesas controllers, when performing a diff --git a/drivers/mmc/host/tmio_mmc_pio.c b/drivers/mmc/host/tmio_mmc_pio.c index a31c3573d386..b04edb551e27 100644 --- a/drivers/mmc/host/tmio_mmc_pio.c +++ b/drivers/mmc/host/tmio_mmc_pio.c @@ -1001,7 +1001,9 @@ static int tmio_mmc_get_ro(struct mmc_host *mmc) } static int tmio_multi_io_quirk(struct mmc_card *card, - unsigned int direction, int blk_size) + unsigned int direction, + u32 blk_pos, + int blk_size) { struct tmio_mmc_host *host = mmc_priv(card->host); diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index c3b84a2e19f5..c1c3868f87f1 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -146,7 +146,9 @@ struct mmc_host_ops { * I/O. Returns the number of supported blocks for the request. */ int (*multi_io_quirk)(struct mmc_card *card, - unsigned int direction, int blk_size); + unsigned int direction, + u32 blk_pos, + int blk_size); }; struct mmc_card;