Commit c31b55cd authored by Adrian Hunter's avatar Adrian Hunter Committed by Chris Ball

mmc: queue: bring discard_granularity/alignment into line with SCSI

SCSI defines discard alignment as the offset to the first
optimal discard.  In the case of SD/MMC, that is always zero
which is the default.

SCSI defines discard granularity as a hint of a optimal
discard size.  That is much better expressed by the MMC
"preferred erase size" (pref_erase) field.
Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Signed-off-by: default avatarChris Ball <cjb@laptop.org>
parent d09408ad
...@@ -135,12 +135,7 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card, ...@@ -135,12 +135,7 @@ int mmc_init_queue(struct mmc_queue *mq, struct mmc_card *card,
mq->queue->limits.max_discard_sectors = UINT_MAX; mq->queue->limits.max_discard_sectors = UINT_MAX;
if (card->erased_byte == 0) if (card->erased_byte == 0)
mq->queue->limits.discard_zeroes_data = 1; mq->queue->limits.discard_zeroes_data = 1;
if (!mmc_can_trim(card) && is_power_of_2(card->erase_size)) { mq->queue->limits.discard_granularity = card->pref_erase << 9;
mq->queue->limits.discard_granularity =
card->erase_size << 9;
mq->queue->limits.discard_alignment =
card->erase_size << 9;
}
if (mmc_can_secure_erase_trim(card)) if (mmc_can_secure_erase_trim(card))
queue_flag_set_unlocked(QUEUE_FLAG_SECDISCARD, queue_flag_set_unlocked(QUEUE_FLAG_SECDISCARD,
mq->queue); mq->queue);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment