On Wed, Apr 13, 2011 at 7:38 PM, Andrei Warkentin <andreiw@xxxxxxxxxxxx> wrote: > This is a request for comments for a patch set that enables > predefined multiblock transfers if these are supported. > > Before this patch set, all multiblock transfers look like (for example) > > CMD25 -> [block] [block] [block] [block] -> CMD12 (stop) > > ...or for controllers with Auto-CMD12 > > CMD25 -> [block] [block] [block] [block] (host sends CMD12 itself). > > We want to enable - > > CMD23(4 blocks) CMD25 [data] [data] [data] [data] > > ...and for controllers with Auto-CMD23 - > > (Host sends CMD23(4 blocks)) CMD25 [data] [data] [data] [data] > > The interrupt overhead is the same, but for cards that optimize for predefined transfers > we can see better transfer rates. I've tested this on a Sandisk eMMC where I saw as good as > a 50% improvement on writes, and on a Toshiba eMMC where I saw no improvement at all. Also, > reliable writes use CMD23, so this cleans up that code path as well. Note, that if a transfer > fails, CMD12 must still be sent, so it is not sufficient to just not fill the mrq->stop field > while doing a CMD23-enabled transfer. Due to this error handling and off-loads of Auto-CMD23 > (and interaction with Auto-CMD12) handling of SET_BLOCK_COUNT, just like STOP, is left to the host driver. > Host driver now exposes MMC_CAP_CMD23 if it has been changed to handle the new "sbc" field in struct mmc_request. > If a host doesn't expose this capability, open-ended transfers are used, and all functionality > relying on CMD23 (such as reliable writes) is disabled. > > The third patch has been only tested on SD cards that don't expose CMD23. Still need to get an SDXC > card and test it out, but I wanted to get eyes on this patch set anyway :-). > > I had a fourth patch enabling Auto-CMD23 for SDHCI, but I'll hold off until I can verify it. > > Thoughts? > > Table of Contents: > [RFC 1/3] MMC: use CMD23 for multiblock transfers when we can. > [RFC 2/3] MMC: Implement MMC_CAP_CMD23 for SDHCI. > [RFC 3/3] MMC: Block CMD23 support for UHS104/SDXC cards. > > A > + Yunpeng -- 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