Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c05c9b1 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "mmc: block: Add quirk and increase read data timeout for hynix emmc"

parents 00c15962 2e79495e
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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
+3 −1
Original line number Diff line number Diff line
@@ -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;
	}

+1 −0
Original line number Diff line number Diff line
@@ -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)