aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mmc
diff options
context:
space:
mode:
authorAdrian Hunter <adrian.hunter@intel.com>2011-06-28 10:16:02 -0400
committerChris Ball <cjb@laptop.org>2011-07-20 17:21:03 -0400
commite056a1b5b67b4e4bfad00bf143ab14f634777705 (patch)
treec9cd3a6144787bcb434e52a4a32dec3c37e9f343 /include/linux/mmc
parente8cd77e467f7bb1d4b942037c47b087334a484d4 (diff)
mmc: queue: let host controllers specify maximum discard timeout
Some host controllers will not operate without a hardware timeout that is limited in value. However large discards require large timeouts, so there needs to be a way to specify the maximum discard size. A host controller driver may now specify the maximum discard timeout possible so that max_discard_sectors can be calculated. However, for eMMC when the High Capacity Erase Group Size is not in use, the timeout calculation depends on clock rate which may change. For that case Preferred Erase Size is used instead. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'include/linux/mmc')
-rw-r--r--include/linux/mmc/core.h1
-rw-r--r--include/linux/mmc/host.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/mmc/core.h b/include/linux/mmc/core.h
index 791f060a6f1d..86d81cf75b70 100644
--- a/include/linux/mmc/core.h
+++ b/include/linux/mmc/core.h
@@ -155,6 +155,7 @@ extern int mmc_can_trim(struct mmc_card *card);
155extern int mmc_can_secure_erase_trim(struct mmc_card *card); 155extern int mmc_can_secure_erase_trim(struct mmc_card *card);
156extern int mmc_erase_group_aligned(struct mmc_card *card, unsigned int from, 156extern int mmc_erase_group_aligned(struct mmc_card *card, unsigned int from,
157 unsigned int nr); 157 unsigned int nr);
158extern unsigned int mmc_calc_max_discard(struct mmc_card *card);
158 159
159extern int mmc_set_blocklen(struct mmc_card *card, unsigned int blocklen); 160extern int mmc_set_blocklen(struct mmc_card *card, unsigned int blocklen);
160 161
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index fc24b38b48cb..c67d19b5542a 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -231,6 +231,7 @@ struct mmc_host {
231 unsigned int max_req_size; /* maximum number of bytes in one req */ 231 unsigned int max_req_size; /* maximum number of bytes in one req */
232 unsigned int max_blk_size; /* maximum size of one mmc block */ 232 unsigned int max_blk_size; /* maximum size of one mmc block */
233 unsigned int max_blk_count; /* maximum number of blocks in one req */ 233 unsigned int max_blk_count; /* maximum number of blocks in one req */
234 unsigned int max_discard_to; /* max. discard timeout in ms */
234 235
235 /* private data */ 236 /* private data */
236 spinlock_t lock; /* lock for claim and bus ops */ 237 spinlock_t lock; /* lock for claim and bus ops */