Hello Detlev, On 2024-08-22 23:15, Detlev Casanova wrote:
From: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx> Per design recommendation, it'd better not try to use any phase which is bigger than 270. Let's officially follow this.
Would it be possible to provide a reference to the actual design specification? This change affects all users of the dw_mmc-rockchip driver, so in case any regressions are found later, having as much detail as possible can only be beneficial.
Signed-off-by: Shawn Lin <shawn.lin@xxxxxxxxxxxxxx> (cherry picked from commit 2a53aab5cfa43065b2e979959d727332a8a03c03) Signed-off-by: Detlev Casanova <detlev.casanova@xxxxxxxxxxxxx> --- drivers/mmc/host/dw_mmc-rockchip.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c index 2748f9bf2691..1458cb5fd5c7 100644 --- a/drivers/mmc/host/dw_mmc-rockchip.c +++ b/drivers/mmc/host/dw_mmc-rockchip.c @@ -310,6 +310,9 @@ static int dw_mci_rk3288_execute_tuning(struct dw_mci_slot *slot, u32 opcode) /* Try each phase and extract good ranges */ for (i = 0; i < priv->num_phases; ) { + /* Cannot guarantee any phases larger than 270 would work well */ + if (TUNING_ITERATION_TO_PHASE(i, priv->num_phases) > 270) + break; rockchip_mmc_set_phase(host, true, TUNING_ITERATION_TO_PHASE( i,