|
@@ -565,43 +565,47 @@ static void scc_mgr_load_dqs_for_write_group(const u32 write_group)
|
|
|
writel(base + i, &sdr_scc_mgr->dqs_ena);
|
|
|
}
|
|
|
|
|
|
-static void scc_mgr_zero_group(uint32_t write_group, uint32_t test_begin,
|
|
|
- int32_t out_only)
|
|
|
+/**
|
|
|
+ * scc_mgr_zero_group() - Zero all configs for a group
|
|
|
+ *
|
|
|
+ * Zero DQ, DM, DQS and OCT configs for a group.
|
|
|
+ */
|
|
|
+static void scc_mgr_zero_group(const u32 write_group, const int out_only)
|
|
|
{
|
|
|
- uint32_t i, r;
|
|
|
+ int i, r;
|
|
|
|
|
|
- for (r = 0; r < RW_MGR_MEM_NUMBER_OF_RANKS; r +=
|
|
|
- NUM_RANKS_PER_SHADOW_REG) {
|
|
|
- /* Zero all DQ config settings */
|
|
|
+ for (r = 0; r < RW_MGR_MEM_NUMBER_OF_RANKS;
|
|
|
+ r += NUM_RANKS_PER_SHADOW_REG) {
|
|
|
+ /* Zero all DQ config settings. */
|
|
|
for (i = 0; i < RW_MGR_MEM_DQ_PER_WRITE_DQS; i++) {
|
|
|
scc_mgr_set_dq_out1_delay(i, 0);
|
|
|
if (!out_only)
|
|
|
scc_mgr_set_dq_in_delay(i, 0);
|
|
|
}
|
|
|
|
|
|
- /* multicast to all DQ enables */
|
|
|
+ /* Multicast to all DQ enables. */
|
|
|
writel(0xff, &sdr_scc_mgr->dq_ena);
|
|
|
|
|
|
- /* Zero all DM config settings */
|
|
|
- for (i = 0; i < RW_MGR_NUM_DM_PER_WRITE_GROUP; i++) {
|
|
|
+ /* Zero all DM config settings. */
|
|
|
+ for (i = 0; i < RW_MGR_NUM_DM_PER_WRITE_GROUP; i++)
|
|
|
scc_mgr_set_dm_out1_delay(i, 0);
|
|
|
- }
|
|
|
|
|
|
- /* multicast to all DM enables */
|
|
|
+ /* Multicast to all DM enables. */
|
|
|
writel(0xff, &sdr_scc_mgr->dm_ena);
|
|
|
|
|
|
- /* zero all DQS io settings */
|
|
|
+ /* Zero all DQS IO settings. */
|
|
|
if (!out_only)
|
|
|
scc_mgr_set_dqs_io_in_delay(0);
|
|
|
- /* av/cv don't have out2 */
|
|
|
+
|
|
|
+ /* Arria V/Cyclone V don't have out2. */
|
|
|
scc_mgr_set_dqs_out1_delay(IO_DQS_OUT_RESERVE);
|
|
|
scc_mgr_set_oct_out1_delay(write_group, IO_DQS_OUT_RESERVE);
|
|
|
scc_mgr_load_dqs_for_write_group(write_group);
|
|
|
|
|
|
- /* multicast to all DQS IO enables (only 1) */
|
|
|
+ /* Multicast to all DQS IO enables (only 1 in total). */
|
|
|
writel(0, &sdr_scc_mgr->dqs_io_ena);
|
|
|
|
|
|
- /* hit update to zero everything */
|
|
|
+ /* Hit update to zero everything. */
|
|
|
writel(0, &sdr_scc_mgr->update);
|
|
|
}
|
|
|
}
|
|
@@ -2344,7 +2348,7 @@ static uint32_t rw_mgr_mem_calibrate_vfifo(uint32_t read_group,
|
|
|
* first case).
|
|
|
*/
|
|
|
if (d > 2)
|
|
|
- scc_mgr_zero_group(write_group, write_test_bgn, 1);
|
|
|
+ scc_mgr_zero_group(write_group, 1);
|
|
|
|
|
|
return 1;
|
|
|
}
|
|
@@ -3368,8 +3372,7 @@ static uint32_t mem_calibrate(void)
|
|
|
|
|
|
writel(write_group, SDR_PHYGRP_SCCGRP_ADDRESS |
|
|
|
SCC_MGR_GROUP_COUNTER_OFFSET);
|
|
|
- scc_mgr_zero_group(write_group, write_test_bgn,
|
|
|
- 0);
|
|
|
+ scc_mgr_zero_group(write_group, 0);
|
|
|
|
|
|
for (read_group = write_group *
|
|
|
RW_MGR_MEM_IF_READ_DQS_WIDTH /
|