Hi Arnd, On Sun, Apr 17, 2011 at 12:23 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote: > On Saturday 16 April 2011, Andrei Warkentin wrote: >> @@ -982,6 +1016,26 @@ static const struct mmc_fixup blk_fixups[] = >> MMC_FIXUP("SEM08G", 0x2, 0x100, add_quirk, MMC_QUIRK_INAND_CMD38), >> MMC_FIXUP("SEM16G", 0x2, 0x100, add_quirk, MMC_QUIRK_INAND_CMD38), >> MMC_FIXUP("SEM32G", 0x2, 0x100, add_quirk, MMC_QUIRK_INAND_CMD38), >> + >> + /* >> + * Some MMC cards experience performance degradation with CMD23 >> + * instead of CMD12-bounded multiblock transfers. For now we'll >> + * white list what's good: >> + * 1) Certain SanDisk eMMCs with the old MMCA manfid. >> + * 2) All new SanDisk products. >> + * >> + * N.B. This doesn't affect SD cards. >> + */ >> + MMC_FIXUP(CID_NAME_ANY, CID_MANFID_ANY, CID_OEMID_ANY, add_quirk_mmc, >> + MMC_QUIRK_BLK_NO_CMD23), >> + MMC_FIXUP("SEM04G", 0x2, 0x100, remove_quirk_mmc, MMC_QUIRK_BLK_NO_CMD23), >> + MMC_FIXUP("SEM08G", 0x2, 0x100, remove_quirk_mmc, MMC_QUIRK_BLK_NO_CMD23), >> + MMC_FIXUP("SEM16G", 0x2, 0x100, remove_quirk_mmc, MMC_QUIRK_BLK_NO_CMD23), >> + MMC_FIXUP("SEM32G", 0x2, 0x100, remove_quirk_mmc, MMC_QUIRK_BLK_NO_CMD23), >> + MMC_FIXUP("SEM02G", 0x2, 0x100, remove_quirk_mmc, MMC_QUIRK_BLK_NO_CMD23), >> + MMC_FIXUP(CID_NAME_ANY, 0x45, CID_OEMID_ANY, >> + remove_quirk_mmc, MMC_QUIRK_BLK_NO_CMD23), >> + >> END_FIXUP >> }; > > Shouldn't this better be a blacklist for known bad cards? > > As far as I can tell, we should always use CMD23 where possible. > > Arnd > Unfortunately it's unknown yet for how many MMC cards this could be a regression. So far it's a regression for Toshiba MMC32G/MMC16G/MMC08G cards because they don't do anything with the advanced knowledge of transfer size, and not using CMD12 seems somehow to interfere with some internal optimization, resulting in a real-life degradation of about 8-10%. According to Sandisk, all their newer products (MMC spec 4.3+) should be good (with new manfid), and I am stilll waiting for specifics for older cards. I (well, and another person at MMI) are collecting some more data for more newer eMMC devices to get a clearer picture, and I am trying to get word on whether newer Toshiba devices should work better with CMD23. A -- 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