summaryrefslogtreecommitdiff
path: root/drivers/ddr/altera/sequencer.c
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2015-07-19 04:14:32 +0200
committerMarek Vasut <marex@denx.de>2015-08-08 14:14:18 +0200
commit0a13a0fb7a2db238c1d4c4313d28455125e08e45 (patch)
treeb73d405ac43b0dac5761b5a452add1d2c4d06404 /drivers/ddr/altera/sequencer.c
parentcbb0b7e03641bbeea558b7d0497d0267578459a2 (diff)
downloadu-boot-imx-0a13a0fb7a2db238c1d4c4313d28455125e08e45.zip
u-boot-imx-0a13a0fb7a2db238c1d4c4313d28455125e08e45.tar.gz
u-boot-imx-0a13a0fb7a2db238c1d4c4313d28455125e08e45.tar.bz2
ddr: altera: Clean up sdr_find_window_centre() part 3
Reorder the end of the function a little by moving the conditional debug output around a little. Rename the function from _centre() to _center(). Document the function in kerneldoc. Signed-off-by: Marek Vasut <marex@denx.de>
Diffstat (limited to 'drivers/ddr/altera/sequencer.c')
-rw-r--r--drivers/ddr/altera/sequencer.c35
1 files changed, 20 insertions, 15 deletions
diff --git a/drivers/ddr/altera/sequencer.c b/drivers/ddr/altera/sequencer.c
index eb246cc..451e141 100644
--- a/drivers/ddr/altera/sequencer.c
+++ b/drivers/ddr/altera/sequencer.c
@@ -1480,7 +1480,16 @@ static int sdr_nonworking_phase(uint32_t *grp, uint32_t *bit_chk,
}
}
-static int sdr_find_window_centre(const u32 grp, const u32 work_bgn,
+/**
+ * sdr_find_window_center() - Find center of the working DQS window.
+ * @grp: Read/Write group
+ * @work_bgn: First working settings
+ * @work_end: Last working settings
+ * @val: VFIFO value
+ *
+ * Find center of the working DQS enable window.
+ */
+static int sdr_find_window_center(const u32 grp, const u32 work_bgn,
const u32 work_end, const u32 val)
{
u32 bit_chk, work_mid, v = val;
@@ -1525,23 +1534,19 @@ static int sdr_find_window_centre(const u32 grp, const u32 work_bgn,
if (rw_mgr_mem_calibrate_read_test_all_ranks(grp, 1,
PASS_ONE_BIT,
&bit_chk, 0)) {
- break;
+ debug_cond(DLEVEL == 2,
+ "%s:%d center: found: vfifo=%u ptap=%u dtap=%u\n",
+ __func__, __LINE__, v, p, d);
+ return 0;
}
- /* fiddle with FIFO */
+ /* Fiddle with FIFO. */
rw_mgr_incr_vfifo(grp, &v);
}
- if (i >= VFIFO_SIZE) {
- debug_cond(DLEVEL == 2, "%s:%d center: failed.\n",
- __func__, __LINE__);
- return 0;
- } else {
- debug_cond(DLEVEL == 2,
- "%s:%d center: found: vfifo=%u ptap=%u dtap=%u\n",
- __func__, __LINE__, v, p, d);
- return 1;
- }
+ debug_cond(DLEVEL == 2, "%s:%d center: failed.\n",
+ __func__, __LINE__);
+ return -EINVAL;
}
/* find a good dqs enable to use */
@@ -1759,8 +1764,8 @@ static uint32_t rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase(uint32_t grp)
/* ******************************************** */
/* * step 6: Find the centre of the window * */
- if (sdr_find_window_centre(grp, work_bgn, work_end, v) == 0)
- return 0;
+ if (sdr_find_window_centre(grp, work_bgn, work_end, v))
+ return 0; /* FIXME: Old code, return 0 means failure :-( */
return 1;
}