diff options
author | Yu-Ping Wu <yupingso@chromium.org> | 2019-10-02 13:06:42 +0800 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-10-09 22:20:05 +0000 |
commit | 093d8ea323c56350f343e48f83bc6d5d9970d8ab (patch) | |
tree | 41566be208448740a6cb749deda2157bf9112d16 /src/soc/mediatek/mt8183/dramc_pi_calibration_api.c | |
parent | 3cde494000de81d56aebc2418e10603d279a567e (diff) | |
download | coreboot-093d8ea323c56350f343e48f83bc6d5d9970d8ab.tar.xz |
soc/mediatek/mt8183: Simplify usage of dramc_engine2_end
Since we always write to &ch[chn].ao.dummy_rd after calling
dramc_engine2_end(), this write could be merged into dramc_engine2_end()
to simplify code.
BUG=none
BRANCH=none
TEST=emerge-kukui coreboot
Change-Id: Ibb4bd5ed016118811ad2097098417c19f00f4263
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/35749
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/mediatek/mt8183/dramc_pi_calibration_api.c')
-rw-r--r-- | src/soc/mediatek/mt8183/dramc_pi_calibration_api.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/soc/mediatek/mt8183/dramc_pi_calibration_api.c b/src/soc/mediatek/mt8183/dramc_pi_calibration_api.c index f8b1f091ed..794e4f0efd 100644 --- a/src/soc/mediatek/mt8183/dramc_pi_calibration_api.c +++ b/src/soc/mediatek/mt8183/dramc_pi_calibration_api.c @@ -607,9 +607,10 @@ static u32 dramc_engine2_run(u8 chn, enum dram_te_op wr) return result; } -static void dramc_engine2_end(u8 chn) +static void dramc_engine2_end(u8 chn, u32 dummy_rd) { clrbits_le32(&ch[chn].ao.test2_4, 0x1 << 17); + write32(&ch[chn].ao.dummy_rd, dummy_rd); } static bool dramc_find_gating_window(u32 result_r, u32 result_f, u32 *debug_cnt, @@ -995,8 +996,7 @@ static void dramc_rx_dqs_gating_cal(u8 chn, u8 rank, u8 freq_group, } } - dramc_engine2_end(chn); - write32(&ch[chn].ao.dummy_rd, dummy_rd_backup); + dramc_engine2_end(chn, dummy_rd_backup); for (dqs = 0; dqs < DQS_NUMBER; dqs++) { pass_count[dqs] = dqs_transition[dqs]; @@ -1811,12 +1811,10 @@ static u8 dramc_window_perbit_cal(u8 chn, u8 rank, u8 freq_group, break; } - if (type == RX_WIN_RD_DQC) { + if (type == RX_WIN_RD_DQC) dramc_rx_rd_dqc_end(chn); - } else { - dramc_engine2_end(chn); - write32(&ch[chn].ao.dummy_rd, dummy_rd_bak_engine2); - } + else + dramc_engine2_end(chn, dummy_rd_bak_engine2); if (vref_scan_enable && type == RX_WIN_TEST_ENG) dramc_set_vref(chn, rank, type, vref_dly.best_vref); @@ -1895,8 +1893,7 @@ static u8 dramc_rx_datlat_cal(u8 chn, u8 rank, u8 freq_group, const struct sdram dramc_dbg("Datlat=%2d, err_value=0x%4x, sum=%d\n", datlat, err, sum); } - dramc_engine2_end(chn); - write32(&ch[chn].ao.dummy_rd, dummy_rd_backup); + dramc_engine2_end(chn, dummy_rd_backup); assert(sum != 0); |