MMC host:

- renesas_sdhi: Fix HS400 on R-Car M3-W+
  - renesas_sdhi: Abort tuning when timeout detected
 -----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCgA1FiEEugLDXPmKSktSkQsV/iaEJXNYjCkFAmDDFTkXHHVsZi5oYW5z
 c29uQGxpbmFyby5vcmcACgkQ/iaEJXNYjCnhQhAApryWQqW1AfZ0ArMskvld60SV
 UUBIOSwJ/RF2ZTPZXE6qI2qawdFkWBdOqKaBm/oXY0SdHf1tBo8m4l0aaa3x5q7S
 Vb9ULYmNqOb8ymz+taIBkCBDBG7/84GhkQfmiKtPIhGNqds35tqaY0xG7sSDDKTz
 ZK/d5vSwXI4q5o4I/EfCdY3bVPdypmwLBBZfBRgyzoU0yXrmXIh+QbEBZyWAswDP
 IhRIEP1h7wKiv8LOxj28YDJ6hdA7M/Sr5bdqYPiK+tlPOUoNzyjtutYfIK5sCIyM
 nrBBp3e3UjZp/CUdL0id80Cx/uwQ/7NnoTQF+cUA1DNlyvZFFBv4z7COJXu6SaeD
 9wSdW+4YspHsR1E6aK+PIxiDpFLKUqEJQQ0HQ4ho7FIY2a4haEPsFjGPg48nlzzt
 gV2WTfCq8KmEWmE6TprRqbAVCsMDQXAIIlNkzWLTtNbbIG5QlDgIbwnQH+qONUlT
 PlWcYu/4YVc3eF38JvPtncoy+3RpAK/5vfR+d/qtsz6Ppi69RdHJRakfOAnjxkWC
 xDsGTEW+4ysQJ+rWAmdvPEZTyK5Nzx0MEhywTjyt4VpFre1vIJFv8Ma+3LbozCn4
 YE66zH14Sq6t3keolyVNBfTBpC5lheywPdoySSrgiHdxCQkeeIHoj66dU8rq+mp/
 zpbfr1Vs4h0Cs5S5EZg=
 =TZWD
 -----END PGP SIGNATURE-----

Merge tag 'mmc-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc

Pull MMC fixes from Ulf Hansson:
 "A couple of MMC fixes to the Renesas SDHI driver:

   - Fix HS400 on R-Car M3-W+

   - Abort tuning when timeout detected"

* tag 'mmc-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
  mmc: renesas_sdhi: Fix HS400 on R-Car M3-W+
  mmc: renesas_sdhi: abort tuning when timeout detected
This commit is contained in:
Linus Torvalds 2021-06-11 10:02:30 -07:00
commit f30dc8f94e
1 changed files with 7 additions and 2 deletions

View File

@ -692,14 +692,19 @@ static int renesas_sdhi_execute_tuning(struct mmc_host *mmc, u32 opcode)
/* Issue CMD19 twice for each tap */
for (i = 0; i < 2 * priv->tap_num; i++) {
int cmd_error;
/* Set sampling clock position */
sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_TAPSET, i % priv->tap_num);
if (mmc_send_tuning(mmc, opcode, NULL) == 0)
if (mmc_send_tuning(mmc, opcode, &cmd_error) == 0)
set_bit(i, priv->taps);
if (sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_SMPCMP) == 0)
set_bit(i, priv->smpcmp);
if (cmd_error)
mmc_abort_tuning(mmc, opcode);
}
ret = renesas_sdhi_select_tuning(host);
@ -939,7 +944,7 @@ static const struct soc_device_attribute sdhi_quirks_match[] = {
{ .soc_id = "r8a7795", .revision = "ES3.*", .data = &sdhi_quirks_bad_taps2367 },
{ .soc_id = "r8a7796", .revision = "ES1.[012]", .data = &sdhi_quirks_4tap_nohs400 },
{ .soc_id = "r8a7796", .revision = "ES1.*", .data = &sdhi_quirks_r8a7796_es13 },
{ .soc_id = "r8a7796", .revision = "ES3.*", .data = &sdhi_quirks_bad_taps1357 },
{ .soc_id = "r8a77961", .data = &sdhi_quirks_bad_taps1357 },
{ .soc_id = "r8a77965", .data = &sdhi_quirks_r8a77965 },
{ .soc_id = "r8a77980", .data = &sdhi_quirks_nohs400 },
{ .soc_id = "r8a77990", .data = &sdhi_quirks_r8a77990 },