diff --git a/drivers/ddr/altera/sequencer.c b/drivers/ddr/altera/sequencer.c index ee541ce16d..efcf28302e 100644 --- a/drivers/ddr/altera/sequencer.c +++ b/drivers/ddr/altera/sequencer.c @@ -2264,7 +2264,7 @@ static int rw_mgr_mem_calibrate_vfifo_center(const u32 rank_bgn, CAL_STAGE_VFIFO_AFTER_WRITES, CAL_SUBSTAGE_VFIFO_CENTER); } - return 0; + return -EIO; } min_index = get_window_mid_index(0, left_edge, right_edge, &mid_min); @@ -2319,7 +2319,10 @@ static int rw_mgr_mem_calibrate_vfifo_center(const u32 rank_bgn, */ writel(0, &sdr_scc_mgr->update); - return (dq_margin >= 0) && (dqs_margin >= 0); + if ((dq_margin < 0) || (dqs_margin < 0)) + return -EINVAL; + + return 0; } /** @@ -2459,7 +2462,7 @@ rw_mgr_mem_calibrate_dq_dqs_centering(const u32 rw_group, const u32 test_bgn, test_bgn, use_read_test, update_fom); - if (ret) + if (!ret) continue; grp_calibrated = 0; @@ -2594,7 +2597,7 @@ static uint32_t rw_mgr_mem_calibrate_vfifo_end(uint32_t read_group, /* Determine if this set of ranks should be skipped entirely */ if (!param->skip_shadow_regs[sr]) { /* This is the last calibration round, update FOM here */ - if (!rw_mgr_mem_calibrate_vfifo_center(rank_bgn, + if (rw_mgr_mem_calibrate_vfifo_center(rank_bgn, read_group, test_bgn, 0, 1)) {