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

Commit 18545228 authored by Ram Prakash Gupta's avatar Ram Prakash Gupta
Browse files

mmc: quirks: Fix data timeout values for certain vendor eMMC cards



Some INAND MCP devices advertise incorrect data timeout values.
This leads to data timeout errors on the platform. So, add a quirk
for such devices to facilitate proper functionality.

Change-Id: Iff29b1d8cd65b6d4dc8ae960dc41f852f52b0a99
Signed-off-by: default avatarPratibhasagar V <pratibha@codeaurora.org>
Signed-off-by: default avatarMaya Erez <merez@codeaurora.org>
Signed-off-by: default avatarSubhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: default avatarRam Prakash Gupta <rampraka@codeaurora.org>
parent fef20d9b
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1639,6 +1639,11 @@ void mmc_set_data_timeout(struct mmc_data *data, const struct mmc_card *card)
				data->timeout_ns =  100000000;	/* 100ms */
		}
	}
	/* Increase the timeout values for some bad INAND MCP devices */
	if (card->quirks & MMC_QUIRK_INAND_DATA_TIMEOUT) {
		data->timeout_ns = 4000000000u; /* 4s */
		data->timeout_clks = 0;
	}
}
EXPORT_SYMBOL(mmc_set_data_timeout);

+4 −0
Original line number Diff line number Diff line
@@ -113,6 +113,10 @@ static const struct mmc_fixup mmc_blk_fixups[] = {
	MMC_FIXUP("V10016", CID_MANFID_KINGSTON, CID_OEMID_ANY, add_quirk_mmc,
		  MMC_QUIRK_TRIM_BROKEN),

	/* Some INAND MCP devices advertise incorrect timeout values */
	MMC_FIXUP("SEM04G", 0x45, CID_OEMID_ANY, add_quirk_mmc,
		  MMC_QUIRK_INAND_DATA_TIMEOUT),

	END_FIXUP
};