On 13/12/16 21:20, Gwendal Grignou wrote: > Working with a SDHCI controller and a Toshiba 16GB THGBMFG7C2LBAIL. > The Toshiba part has a large erase group size and a long erase timeout. > It barely fits within the controller timeout, but mmc reports a > 512B discard size to the block layer instead of the expected 4MB: > /sys/block/mmcblk0/queue/discard_max_bytes = 512 > > The host caps[0] is 0x...b2, so host->max_busy_timeout is set to > 2684.35ms: (1 << 27 / ((0xb2 & 0x3f) * 1000). > > In Toshiba EXT_CSD, HC_ERASE_GRP_SIZE is set to 7 (2100ms erase timeout) > HC_ERASE_GRP_SIZE is set to 8, (8192 512B sectors erase size). > > In mmc_do_calc_max_discard(), as a safety, for eMMC device, number of > erase groups that could safely be erased with the host timeout (qty) was > reduced by 1. It was not for safety - it was to allow for crossing an erase group boundary. But the current code is quite different now, so please have a look at that because this code does not apply anymore. -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html