Re: [PATCH v2 0/4] mmc: sdhci_am654: Fix DDR50 mode for cards without tuning support
Adrian Hunter <[email protected]> Fri, 7 Aug 2026 11:16:40 +0300
| Newsgroups | org.kernel.vger.linux-mmc,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Organization | Intel Finland Oy, Registered Address: c/o Alberga Business Park, 6 krs, Bertel Jungin Aukio 5, 02600 Espoo, Business Identity Code: 0357606 - 4, Domiciled in Helsinki |
| Message-ID | <[email protected]> |
On 03/08/2026 16:47, Diogo Ivo (Schneider Electric) wrote: > DDR50 mode is not required to support the tuning command CMD19 by the > eMMC/SD specification, meaning that calibration may fail on cards that > do not implement it. This series fixes four issues discovered when > using such cards: > > - Patch 1 moves the tuning_loop counter from a persistent struct field > to a local variable, preventing failed tuning attempts from depleting > the retry budget across calls. > > - Patch 2 ensures the command/data line reset is always performed > after tuning, even on failure, preventing stale data in the > controller buffer. > > - Patch 3 clears the ITAPDLY enable and delay values on tuning > failure so that leftover calibration values do not interfere with > subsequent I/O. > > - Patch 4 falls back to the DT-provided itap delay value for DDR50 > when tuning fails in this mode, making a best-effort attempt at a > known-good delay being programmed. > > Together these changes make DDR50 functional on TI J721E SoCs with > cards that lack CMD19 tuning support. This second version addresses > all comments from Sashiko, which I found to be correct. > > Signed-off-by: Diogo Ivo (Schneider Electric) <[email protected]> For all 4: Acked-by: Adrian Hunter <[email protected]> > --- > Changes in v2: > - Add new patch moving tuning_loop to a local variable (Patch 1) > - Clear ITAPDLY array values alongside HW registers on tuning failure (Patch 3) > - Save DT-provided itap delay values for DDR50 in dedicated variables > to preserve them across tuning cycles (Patch 4) > - Link to v1: https://patch.msgid.link/[email protected] > > --- > Diogo Ivo (Schneider Electric) (4): > mmc: sdhci_am654: Move tuning_loop to local variable > mmc: sdhci_am654: Reset command and data lines on failed tuning > mmc: sdhci_am654: Clear ITAPDLY on tuning failure > mmc: sdhci_am654: Fallback to DT-provided itap delay on DDR50 tuning failure > > drivers/mmc/host/sdhci_am654.c | 42 +++++++++++++++++++++++++++--------------- > 1 file changed, 27 insertions(+), 15 deletions(-) > --- > base-commit: f932188d6b0b684ee8555c8ecf1cac3567c4b106 > change-id: 20260728-am654-sdhci-85094d458bae > > Best regards, > -- > Diogo Ivo <[email protected]> >