diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2014-09-02 22:08:53 -0400 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2014-09-09 07:59:25 -0400 |
commit | 2e47e84245adcb1b3872210678b6146f674fb3ff (patch) | |
tree | 0ab356fa3d0d079a855ed65e5b51326328738e99 /include/linux/mmc | |
parent | adc828556dfc3f87a5c1338fc5412cbec3c0b529 (diff) |
mmc: Add .multi_io_quirk callback for multi I/O HW bug
Historically, we have been using MMC_CAP* to handle host HW issues and
currently the block layer uses MMC_CAP2_NO_MULTI_READ flag for a multi
I/O HW bug workaround.
There are a few tweaks needed to make MMC_CAP2_NO_MULTI_READ suite all
situations. Therefore let's add an optional host ops callback to enable
host drivers to return the number of blocks it allows per request.
In a future patch and when host drivers have converted to the new
callback, MMC_CAP2_NO_MULTI_READ shall be removed.
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'include/linux/mmc')
-rw-r--r-- | include/linux/mmc/host.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 4cbf61476999..10e2bd6985ae 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h | |||
@@ -139,6 +139,13 @@ struct mmc_host_ops { | |||
139 | int (*select_drive_strength)(unsigned int max_dtr, int host_drv, int card_drv); | 139 | int (*select_drive_strength)(unsigned int max_dtr, int host_drv, int card_drv); |
140 | void (*hw_reset)(struct mmc_host *host); | 140 | void (*hw_reset)(struct mmc_host *host); |
141 | void (*card_event)(struct mmc_host *host); | 141 | void (*card_event)(struct mmc_host *host); |
142 | |||
143 | /* | ||
144 | * Optional callback to support controllers with HW issues for multiple | ||
145 | * I/O. Returns the number of supported blocks for the request. | ||
146 | */ | ||
147 | int (*multi_io_quirk)(struct mmc_card *card, | ||
148 | unsigned int direction, int blk_size); | ||
142 | }; | 149 | }; |
143 | 150 | ||
144 | struct mmc_card; | 151 | struct mmc_card; |