]> git.apps.os.sepia.ceph.com Git - ceph-client.git/commit
mmc: sdhci-esdhc-imx: switch standard tuning to manual tuning
authorLuke Wang <ziniu.wang_1@nxp.com>
Wed, 9 Apr 2025 07:55:50 +0000 (15:55 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 14 May 2025 14:59:18 +0000 (16:59 +0200)
commit1c7387579d743c02a3da7aefff1689a5a55c9b84
tree6b74fd471d659405bc54ba1700b0a38f7952473b
parent309d7ef65f46f01afd723401f7fc210244a08159
mmc: sdhci-esdhc-imx: switch standard tuning to manual tuning

Current standard tuning has some limitations:

1. Standard tuning only try 40 times to find first pass window, but this
pass window maybe not the best pass window.

2. Sometimes there are two tuning pass windows and the gap between
those two windows may only have one cell. If tuning step > 1, the gap may
just be skipped and host assumes those two windows as a continuous
windows. This will cause a bad delay cell near the gap to be selected.

3. Standard tuning logic need to detect at least one success and failure
to pass the tuning. If all cells in the tuning window pass, the hardware
will not set the SDHCI_CTRL_TUNED_CLK bit, causing tuning failed.

4. Standard tuning logic only check the CRC, do not really compare the data
pattern. If data pins are connected incorrectly, standard will not detect
this kind of issue.

Switch to manual tuning to avoid those limitations

Signed-off-by: Luke Wang <ziniu.wang_1@nxp.com>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Link: https://lore.kernel.org/r/20250409075550.3413032-7-ziniu.wang_1@nxp.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-esdhc-imx.c