From 1865052d4041d818fb245be254aba2803f786cd3 Mon Sep 17 00:00:00 2001 From: Vincent Palatin Date: Tue, 12 Feb 2013 16:20:12 -0800 Subject: [PATCH] CHROMIUM: mmc: card: add a quirk for Kingston eMMC The Kingston eMMC 16GB is sometimes freezing (not answering to the request) when doing a multiple read (CMD18). With this workaround, I'm no longer encountering the issue. Signed-off-by: Vincent Palatin BUG=chrome-os-partner:17397 TEST=on Spring with unreliable Kingston eMMC, /usr/sbin/chromeos-install, then boot the board from eMMC and see both steps succeeding without freeze. Change-Id: If22613093debafeb90ecdc90b8ad5373d2050de9 Reviewed-on: https://gerrit.chromium.org/gerrit/43149 Reviewed-by: Todd Broch Commit-Queue: Vincent Palatin Tested-by: Vincent Palatin --- drivers/mmc/card/block.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index dabec556ebb87..de3a97c3557d6 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c @@ -1730,6 +1730,7 @@ force_ro_fail: #define CID_MANFID_SANDISK 0x2 #define CID_MANFID_TOSHIBA 0x11 #define CID_MANFID_MICRON 0x13 +#define CID_MANFID_KINGSTON 0x70 static const struct mmc_fixup blk_fixups[] = { @@ -1759,6 +1760,13 @@ static const struct mmc_fixup blk_fixups[] = MMC_FIXUP("MMC32G", CID_MANFID_TOSHIBA, CID_OEMID_ANY, add_quirk_mmc, MMC_QUIRK_BLK_NO_CMD23), + /* + * Sometimes the multiple reads on the 16GB Kingston eMMC are freezing, + * this quirk seems to prevent that issue from happening. + */ + MMC_FIXUP("MMC16G", CID_MANFID_KINGSTON, 0x100, add_quirk_mmc, + MMC_QUIRK_BLK_NO_CMD23), + /* * Some Micron MMC cards needs longer data read timeout than * indicated in CSD. -- 2.39.5