From 944c6108899366f3ba9f2c04f992c511a2f2dbb5 Mon Sep 17 00:00:00 2001 From: Long Yu Date: Mon, 5 Aug 2019 11:10:08 +0800 Subject: [PATCH] emmc: Set a flag when all sampling points are valid [1/1] PD#SWPL-12209 Problem: fixed SWPL-11917 When all the sample points are valid, they fall into the changes of 111917 Solution: flag is set when all sampling points are valid so tuning does not enter the changes of 11197 Verify: txlx Change-Id: I591993f3007db913b0030b108dcb18c304bf1042 Signed-off-by: Long Yu --- drivers/amlogic/mmc/aml_sd_emmc_v3.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/amlogic/mmc/aml_sd_emmc_v3.c b/drivers/amlogic/mmc/aml_sd_emmc_v3.c index a43699d9fbf5..d3fcc3ceab09 100644 --- a/drivers/amlogic/mmc/aml_sd_emmc_v3.c +++ b/drivers/amlogic/mmc/aml_sd_emmc_v3.c @@ -1705,6 +1705,7 @@ static int _aml_sd_emmc_execute_tuning(struct mmc_host *mmc, u32 opcode, int curr_win_start, curr_win_size; u32 old_dly, d1_dly, dly; unsigned long fixed_adj_map[1]; + bool all_flag = false; if ((host->mem->start == host->data->port_b_base) && host->data->tdma_f) @@ -1816,10 +1817,13 @@ tunning: mmc_hostname(host->mmc)); goto tunning; } else if ((best_win_size < clk_div) - && (clk_div <= AML_FIXED_ADJ_MAX)) { + && (clk_div <= AML_FIXED_ADJ_MAX) + && (clk_div >= AML_FIXED_ADJ_MIN) + && !all_flag) { adj_delay_find = _find_fixed_adj_valid_win(host, tuning_data, opcode, fixed_adj_map, clk_div); } else if (best_win_size == clk_div) { + all_flag = true; dly = readl(host->base + SD_EMMC_DELAY1_V3); d1_dly = (dly >> 0x6) & 0x3F; pr_warn("%s() d1_dly %d, window start %d, size %d\n",