Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mmc: core: Disable HPI for certain Micron (Numonyx) eMMC cards

Certain Micron eMMC v4.5 cards might get broken when HPI feature is used
and hence this patch disables the HPI feature for such buggy cards.

In U-Boot, these cards are reported as

Manufacturer: Micron (ID: 0xFE)
OEM: 0x4E
Name: MMC32G
Revision: 19 (0x13)
Serial: 959241022 Manufact. date: 8/2015 (0x82) CRC: 0x00
Tran Speed: 52000000
Rd Block Len: 512
MMC version 4.5
High Capacity: Yes
Capacity: 29.1 GiB
Boot Partition Size: 16 MiB
Bus Width: 8-bit

According to JEDEC JEP106 manufacturer 0xFE is Numonyx, which was bought by
Micron.

Signed-off-by: Dirk Behme <dirk.behme@de.bosch.com>
Signed-off-by: Mark Craske <Mark_Craske@mentor.com>
Cc: <stable@vger.kernel.org> # 4.8+
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

authored by

Dirk Behme and committed by
Ulf Hansson
dbe7dc6b e22842dd

+7
+1
drivers/mmc/core/card.h
··· 82 82 #define CID_MANFID_APACER 0x27 83 83 #define CID_MANFID_KINGSTON 0x70 84 84 #define CID_MANFID_HYNIX 0x90 85 + #define CID_MANFID_NUMONYX 0xFE 85 86 86 87 #define END_FIXUP { NULL } 87 88
+6
drivers/mmc/core/quirks.h
··· 109 109 */ 110 110 MMC_FIXUP_EXT_CSD_REV(CID_NAME_ANY, CID_MANFID_HYNIX, 111 111 0x014a, add_quirk, MMC_QUIRK_BROKEN_HPI, 5), 112 + /* 113 + * Certain Micron (Numonyx) eMMC 4.5 cards might get broken when HPI 114 + * feature is used so disable the HPI feature for such buggy cards. 115 + */ 116 + MMC_FIXUP_EXT_CSD_REV(CID_NAME_ANY, CID_MANFID_NUMONYX, 117 + 0x014e, add_quirk, MMC_QUIRK_BROKEN_HPI, 6), 112 118 113 119 END_FIXUP 114 120 };