D spec v5.1 adds discard support. The flows and commands matches those in eMMC, Which leaves to set the appropriate discard arg in CMD38 if DISCARD_SUPPORT (b313) is set in the SD_STATUS register. We set this arg on card init: not in mmc_init_erase as one might expect but arbitrarily once the card indicated its discard support. This is because unlike erase, it doesn't really involve any logic, and we want to avoid the unnecessary complication. Avri Altman (3): mmc: core: Calculate the discard arg only once mmc: core: Indicate SD specs higher than 4.0 mmc: core: Add discard support to sd drivers/mmc/core/block.c | 12 +++--------- drivers/mmc/core/core.c | 6 +++++- drivers/mmc/core/mmc.c | 8 ++++++++ drivers/mmc/core/sd.c | 15 +++++++++++++++ include/linux/mmc/card.h | 4 ++++ include/linux/mmc/sd.h | 6 ++++++ 6 files changed, 41 insertions(+), 10 deletions(-) -- 1.9.1