Re: [PATCH v2 0/4] mmc: sdhci_am654: Fix DDR50 mode for cards without tuning support

Adrian Hunter <[email protected]>
Newsgroups org.kernel.vger.stable,org.kernel.vger.linux-kernel,org.kernel.vger.linux-mmc
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]>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.