summaryrefslogtreecommitdiff
path: root/drivers/ddr
AgeCommit message (Collapse)Author
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_center() part 3Marek Vasut
Factor out common code from search_left_edge() and search_right_edge() which checks whether searching for the window edge should stop. The code is almost identical, so pull it into separate function and cater for the minor differences. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_center() part 2Marek Vasut
Factor out common code from rw_mgr_mem_calibrate_writes_center() and rw_mgr_mem_calibrate_vfifo_center() for searching for the left edge of the window. The code is almost identical, so pull it into separate function and cater for the minor differences. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_center() part 1Marek Vasut
Factor out common code from rw_mgr_mem_calibrate_writes_center() and rw_mgr_mem_calibrate_vfifo_center() for searching for the right edge of the window. The code is almost identical, so pull it into separate function and cater for the minor differences. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_writes()Marek Vasut
Reorder the content of the function a little and fix the comments so they at least become full sentences. Constify function args. Fix the return value to match the common convention of 0 meaning success. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_read_test() part 5Marek Vasut
Make the function documentation into kerneldoc. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_read_test() part 4Marek Vasut
Clean up the inner loop a bit. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_read_test() part 3Marek Vasut
The C language has signed types, so make use of them. Fix this obscene loop, which tries to do away with unsigned type, but just makes the code more cryptic. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_read_test() part 2Marek Vasut
Clean up data types and constify where applicable. No function change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_read_test() part 1Marek Vasut
Clean up the debug output handling at the end of the function and factor out common function call from the condition. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_read_test_all_ranks()Marek Vasut
Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase() part 7Marek Vasut
Add kerneldoc, no functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase() part 6Marek Vasut
Fix the return value to match common conventions and propagate this change through the code. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase() part 5Marek Vasut
Fix the data types, constify where applicable. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase() part 4Marek Vasut
Implement common sdr_find_phase_delay() function and convert all places which use such code to this unified function. No functional change to the code. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase() part 3Marek Vasut
Clean up odd multiline loop, no functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase() part 2Marek Vasut
If d != 0 after sdr_working_phase() finishes, the else branch of the condition has no impact on anything at all, since work_end was already set independently of the value of "d" . Zap this useless code. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase() part 1Marek Vasut
Fix broken multiline debug strings, fix comments. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up find_vfifo_read()Marek Vasut
Fix data types, constify where applicable, fix comments and debug strings. In case enough failing reads are detected, just return right away instead of breaking from the loop. This lets us make the error handling at the end much simpler. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_*_vfifo() part 2Marek Vasut
Pluck out all this VFIFO value counting, which turns out to be completely unused. Thus, remove it to simplify the code. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_*_vfifo() part 1Marek Vasut
Perform minor cleanup, fix data types and constify where applicable. Add kerneldoc. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up sdr_*_phase() part 10Marek Vasut
Clean up data types, constify where applicable and document the functions with kerneldoc. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up sdr_*_phase() part 9Marek Vasut
The "d" variable is set to 0 in sdr_backup_phase() and is not used at all in sdr_nonworking_phase(). Make it local and zap it respectively. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up sdr_*_phase() part 8Marek Vasut
The work_bgn parameter of sdr_nonworking_phase() is unused, zap it. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up sdr_*_phase() part 7Marek Vasut
Wrap dtaps_per_ptap into the sdr_working_phase() function to trim down the number of params. It's a constant too. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up sdr_*_phase() part 6Marek Vasut
It is now clear that the max_working_cnt variable is totally unused. Zap the variable and zap other variables which became unused due to this change too. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up sdr_*_phase() part 5Marek Vasut
Pull out the loop for eaching working/non-working DQS enable phase into a separate function, as this is mostly common code between. Clean up sdr_working_phase() and sdr_nonworking_phase() while switching these two functions to the common sdr_find_phase(). Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up sdr_*_phase() part 4Marek Vasut
Get rid of found_{begin,end} variables. Instead of breaking out through all of the loops, just return when the begin/end of the window is found and be done with it. Also clean up the trailing conditional expression, which is now much easier. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up sdr_*_phase() part 3Marek Vasut
Fix the arguments passed to these functions. The bit_chk is overriden by rw_mgr_mem_calibrate_read_test_all_ranks() which is invoked by all three sdr_*_phase() functions, so just make this into local variable. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up sdr_*_phase() part 2Marek Vasut
Fix the arguments passed to these functions. The grp argument does not have to be passed via reference, it's never modified within either of those functions, so make it into a value. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up sdr_*_phase() part 1Marek Vasut
Rename find_working_phase() to sdr_working_phase() for the sake of consistency. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up sdr_find_window_centre() part 3Marek Vasut
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>
2015-08-08ddr: altera: Clean up sdr_find_window_centre() part 2Marek Vasut
This function is a treasure trove of ad-hoc iterative implementations of mathematical functions. Replace all of those with their non-iterative counterpart. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up sdr_find_window_centre() part 1Marek Vasut
Clean up the arguments of this function. Most of the pointers passed into the function are either not needed at all, or can be passed as value instead of reference. Also fix the broken multiline debug strings. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up ↵Marek Vasut
rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase_sweep_dq_in_delay() part 4 This function is only invoked from rw_mgr_mem_calibrate_dqs_enable_calibration() and at this point, it is just one level of indirection, so wrap the rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase_sweep_dq_in_delay() into rw_mgr_mem_calibrate_dqs_enable_calibration() to get rid of the level of indirection. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up ↵Marek Vasut
rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase_sweep_dq_in_delay() part 3 Replace at least one of the loops in this function with call of a standard function call instead of the ad-hoc implementation. The other one cannot be replaced, since the delay is incremented for each group. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up ↵Marek Vasut
rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase_sweep_dq_in_delay() part 2 The read_group and write_group params have the same value for all (one) invocations of this function, just merge them into a single param. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up ↵Marek Vasut
rw_mgr_mem_calibrate_vfifo_find_dqs_en_phase_sweep_dq_in_delay() part 1 Start cleaning up this function. In the first part, just fix the incorrectly broken debug strings and fix return value to respect the common convention. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Clean up rw_mgr_mem_calibrate_read_test_patterns()Marek Vasut
Rework this function such that the code is more readable. Zap unused parameter "num_tries" while at it. Also wrap parameter "bit_chk" into this function as it's value is not used outside. Finally, fix the return value from this function to match the common expectation, where 0 means success. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Zap rw_mgr_mem_calibrate_read_test_patterns_all_ranks()Marek Vasut
This function is called from one single place and it's sole purpose is to call one single function with slightly modified arguments. Zap this function to skip this useless intermediate step. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Minor rw_mgr_mem_calibrate_read_load_patterns() cleanupMarek Vasut
Just do an easy data type cleanup of this function, no functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Extract Centering DQ/DQS from rw_mgr_mem_calibrate_vfifo()Marek Vasut
Just extract this piece of functionality into separate function to make the code better separated. This matches the division in Altera documentation, Altera EMI_RM 2015.05.04 , section 1, the UniPHY Calibration Stages. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Extract DQS enable calibration from rw_mgr_mem_calibrate_vfifo()Marek Vasut
Just extract this piece of functionality into separate function to make the code better separated. This matches the division in Altera documentation, Altera EMI_RM 2015.05.04 , section 1, the UniPHY Calibration Stages. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Extract guaranteed write from rw_mgr_mem_calibrate_vfifo()Marek Vasut
Just extract this piece of functionality into separate function to make the code better separated. This matches the division in Altera documentation, Altera EMI_RM 2015.05.04 , section 1, the UniPHY Calibration Stages. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Internal rw_mgr_mem_calibrate_vfifo() cleanup part 7Marek Vasut
Mildly reorder the function so that the reg_file_set*() calls are in the same place. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Internal rw_mgr_mem_calibrate_vfifo() cleanup part 6Marek Vasut
This is kind of microseries-within-series indent cleanup. It is clear that the read_group and write_group variables have the same value, to just make them into one variable called rw_group. While doing this, constify the variables as they are constant. It is likely that this patch has checkpatch warnings, but for the sake of not breaking the code, these are ignored. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Internal rw_mgr_mem_calibrate_vfifo() cleanup part 5Marek Vasut
This is kind of microseries-within-series indent cleanup. This patch fixes the broken formatting strings in debug_cond() invocations. It is likely that this patch has checkpatch warnings, but for the sake of not breaking the code, these are ignored. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Internal rw_mgr_mem_calibrate_vfifo() cleanup part 4Marek Vasut
This is kind of microseries-within-series indent cleanup. This patch cleans up the handling of grp_calibrated such that the variable isn't used all over the place, but just very localy. This allows trimming down the indent issues. It is likely that this patch has checkpatch warnings, but for the sake of not breaking the code, these are ignored. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Internal rw_mgr_mem_calibrate_vfifo() cleanup part 3Marek Vasut
This is kind of microseries-within-series indent cleanup. This patch just tweaks the indentation so it is visible what to do with the grp_calibrated variable. It is likely that this patch has checkpatch warnings, but for the sake of not breaking the code, these are ignored. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Internal rw_mgr_mem_calibrate_vfifo() cleanup part 2Marek Vasut
This is kind of microseries-within-series indent cleanup. This patch just tweaks the indentation so it is visible what is supposed to go where. It is likely that this patch has checkpatch warnings, but for the sake of not breaking the code, these are ignored. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
2015-08-08ddr: altera: Internal rw_mgr_mem_calibrate_vfifo() cleanup part 1Marek Vasut
This patch just adds an expanded documentation header to the aforementioned function. This is needed to make it easier to match the purpose of this function with the documentation. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>