RE: [PATCH RFT v2 2/3] mmc: tmio: Add data timeout error detection

Yoshihiro Shimoda
2020-11-25T11:05:09Z

Hi Wolfram-san,

> From: Wolfram Sang, Sent: Wednesday, November 25, 2020 5:56 PM
<snip>
> > The following commit [1] is a BSP local patch though,
> > we need to set -EILSEQ to retune a card for R-Car Gen3 [2]
> > by MMC core driver [3].
>
> So, if there is a non-removable eMMC or a SD card inserted, then we need
> to EILSEQ to enforce a retune. Otherwise it is a data timeout. Is my
> understanding correct?

Yes.

> I wonder, though, if "Gen3" is a complete description? There are SDHI
> instances on Gen2 which can also do SDR104. Won't they need the same
> treatment? Then we could say that every SDHI which has an SCC will need
> this treatment.

Hmm, since Gen2 datasheet didn't update the flowchart so that I thought
we need special handling for "Gen3". But, I'll ask hardware team whether
my thought is correct or not.

> > - The patch also change the tmio_mmc_cmd_irq() when CMDTIMEOUT happens for R-Car Gen3.
> > But, for upstream, we should make a separated patch for it.
>
> I am sorry. I don't fully understand. Why does the change to
> tmio_mmc_cmd_irq() need a seperate patch?

The patch subject is "Add data timeout error detection".
That's why I thought so.

> > - These "for R-Car Gen3" means I'm thinking we need additional condition:
> > 1) to set -EILSRQ or -ETIMEDOUT for R-Car Gen3
> > 2) to set -ETIMEDOUT anyway for other SoCs.
> > # These are complex conditions a little though...
>
> Well, from what I understood this sounds not too hard. Let's hope I just
> got it correctly :)

I got it :)

> However, there is something in this patch which makes mmc_test #15 work,
> though. We still want this in this series, or do you think it is better
> to move it to a seperate series?

Thank you for the comments. I realized mmc_test #15 failed if tmio driver
returned -EILSEQ when I applied the BSP patch as the following:
---
[ 206.016193] mmc0: Starting tests of card mmc0:0001...
[ 206.022708] mmc0: Test case 15. Proper xfer_size at write (start failure)...
[ 206.854082] mmc0: Result: ERROR (-84)
[ 206.858632] mmc0: Tests completed.
---

So, I'm thinking retuning -EILSEQ in cmd/data timeout should be a separate series now.
# Perhaps we need other way to follow the retuning sequence for R-Car Gen3...

Best regards,
Yoshihiro Shimoda