Loading drivers/mmc/card/block.c +7 −0 Original line number Diff line number Diff line Loading @@ -4007,6 +4007,13 @@ static const struct mmc_fixup blk_fixups[] = MMC_FIXUP("Q7XSAB", CID_MANFID_SAMSUNG, 0x100, add_quirk_mmc, MMC_QUIRK_LONG_READ_TIME), /* * Hynix eMMC cards need longer data read timeout than * indicated in CSD. */ MMC_FIXUP(CID_NAME_ANY, CID_MANFID_HYNIX, CID_OEMID_ANY, add_quirk_mmc, MMC_QUIRK_LONG_READ_TIME), /* * On these Samsung MoviNAND parts, performing secure erase or * secure trim can result in unrecoverable corruption due to a Loading drivers/mmc/core/core.c +3 −1 Original line number Diff line number Diff line Loading @@ -1892,9 +1892,11 @@ void mmc_set_data_timeout(struct mmc_data *data, const struct mmc_card *card) * Address this by setting the read timeout to a "reasonably high" * value. For the cards tested, 300ms has proven enough. If necessary, * this value can be increased if other problematic cards require this. * Certain Hynix 5.x cards giving read timeout even with 300ms. * Increasing further to max value (4s). */ if (mmc_card_long_read_time(card) && data->flags & MMC_DATA_READ) { data->timeout_ns = 300000000; data->timeout_ns = 4000000000u; data->timeout_clks = 0; } Loading include/linux/mmc/card.h +1 −0 Original line number Diff line number Diff line Loading @@ -479,6 +479,7 @@ struct mmc_fixup { #define CID_MANFID_MICRON 0x13 #define CID_MANFID_SAMSUNG 0x15 #define CID_MANFID_KINGSTON 0x70 #define CID_MANFID_HYNIX 0x90 #define CID_MANFID_ANY (-1u) #define CID_OEMID_ANY ((unsigned short) -1) Loading Loading
drivers/mmc/card/block.c +7 −0 Original line number Diff line number Diff line Loading @@ -4007,6 +4007,13 @@ static const struct mmc_fixup blk_fixups[] = MMC_FIXUP("Q7XSAB", CID_MANFID_SAMSUNG, 0x100, add_quirk_mmc, MMC_QUIRK_LONG_READ_TIME), /* * Hynix eMMC cards need longer data read timeout than * indicated in CSD. */ MMC_FIXUP(CID_NAME_ANY, CID_MANFID_HYNIX, CID_OEMID_ANY, add_quirk_mmc, MMC_QUIRK_LONG_READ_TIME), /* * On these Samsung MoviNAND parts, performing secure erase or * secure trim can result in unrecoverable corruption due to a Loading
drivers/mmc/core/core.c +3 −1 Original line number Diff line number Diff line Loading @@ -1892,9 +1892,11 @@ void mmc_set_data_timeout(struct mmc_data *data, const struct mmc_card *card) * Address this by setting the read timeout to a "reasonably high" * value. For the cards tested, 300ms has proven enough. If necessary, * this value can be increased if other problematic cards require this. * Certain Hynix 5.x cards giving read timeout even with 300ms. * Increasing further to max value (4s). */ if (mmc_card_long_read_time(card) && data->flags & MMC_DATA_READ) { data->timeout_ns = 300000000; data->timeout_ns = 4000000000u; data->timeout_clks = 0; } Loading
include/linux/mmc/card.h +1 −0 Original line number Diff line number Diff line Loading @@ -479,6 +479,7 @@ struct mmc_fixup { #define CID_MANFID_MICRON 0x13 #define CID_MANFID_SAMSUNG 0x15 #define CID_MANFID_KINGSTON 0x70 #define CID_MANFID_HYNIX 0x90 #define CID_MANFID_ANY (-1u) #define CID_OEMID_ANY ((unsigned short) -1) Loading