summaryrefslogtreecommitdiffstats
path: root/drivers/ddr
Commit message (Collapse)AuthorAgeFilesLines
...
* ddr: altera: Clean up sdr_*_phase() part 6Marek Vasut2015-08-081-31/+9
| | | | | | | | 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>
* ddr: altera: Clean up sdr_*_phase() part 5Marek Vasut2015-08-081-55/+72
| | | | | | | | | 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>
* ddr: altera: Clean up sdr_*_phase() part 4Marek Vasut2015-08-081-31/+10
| | | | | | | | | 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>
* ddr: altera: Clean up sdr_*_phase() part 3Marek Vasut2015-08-081-9/+12
| | | | | | | | | 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>
* ddr: altera: Clean up sdr_*_phase() part 2Marek Vasut2015-08-081-20/+20
| | | | | | | | 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>
* ddr: altera: Clean up sdr_*_phase() part 1Marek Vasut2015-08-081-3/+3
| | | | | | | Rename find_working_phase() to sdr_working_phase() for the sake of consistency. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Clean up sdr_find_window_centre() part 3Marek Vasut2015-08-081-15/+20
| | | | | | | | 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>
* ddr: altera: Clean up sdr_find_window_centre() part 2Marek Vasut2015-08-081-16/+15
| | | | | | | | 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>
* ddr: altera: Clean up sdr_find_window_centre() part 1Marek Vasut2015-08-081-32/+32
| | | | | | | | | 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>
* ddr: altera: Clean up ↵Marek Vasut2015-08-081-56/+47
| | | | | | | | | | | | 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>
* ddr: altera: Clean up ↵Marek Vasut2015-08-081-7/+1
| | | | | | | | | | | 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>
* ddr: altera: Clean up ↵Marek Vasut2015-08-081-10/+8
| | | | | | | | | 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>
* ddr: altera: Clean up ↵Marek Vasut2015-08-081-31/+30
| | | | | | | | | | 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>
* ddr: altera: Clean up rw_mgr_mem_calibrate_read_test_patterns()Marek Vasut2015-08-081-46/+50
| | | | | | | | | | 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>
* ddr: altera: Zap rw_mgr_mem_calibrate_read_test_patterns_all_ranks()Marek Vasut2015-08-081-9/+2
| | | | | | | | 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>
* ddr: altera: Minor rw_mgr_mem_calibrate_read_load_patterns() cleanupMarek Vasut2015-08-081-6/+14
| | | | | | Just do an easy data type cleanup of this function, no functional change. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Extract Centering DQ/DQS from rw_mgr_mem_calibrate_vfifo()Marek Vasut2015-08-081-27/+57
| | | | | | | | | 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>
* ddr: altera: Extract DQS enable calibration from rw_mgr_mem_calibrate_vfifo()Marek Vasut2015-08-081-3/+29
| | | | | | | | | 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>
* ddr: altera: Extract guaranteed write from rw_mgr_mem_calibrate_vfifo()Marek Vasut2015-08-081-22/+54
| | | | | | | | | 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>
* ddr: altera: Internal rw_mgr_mem_calibrate_vfifo() cleanup part 7Marek Vasut2015-08-081-8/+6
| | | | | | | 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>
* ddr: altera: Internal rw_mgr_mem_calibrate_vfifo() cleanup part 6Marek Vasut2015-08-081-20/+14
| | | | | | | | | | | | | | | 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>
* ddr: altera: Internal rw_mgr_mem_calibrate_vfifo() cleanup part 5Marek Vasut2015-08-081-7/+6
| | | | | | | | | | | | | 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>
* ddr: altera: Internal rw_mgr_mem_calibrate_vfifo() cleanup part 4Marek Vasut2015-08-081-40/+41
| | | | | | | | | | | | | | 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>
* ddr: altera: Internal rw_mgr_mem_calibrate_vfifo() cleanup part 3Marek Vasut2015-08-081-19/+19
| | | | | | | | | | | | | 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>
* ddr: altera: Internal rw_mgr_mem_calibrate_vfifo() cleanup part 2Marek Vasut2015-08-081-29/+27
| | | | | | | | | | | | | 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>
* ddr: altera: Internal rw_mgr_mem_calibrate_vfifo() cleanup part 1Marek Vasut2015-08-081-4/+12
| | | | | | | | | | 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>
* ddr: altera: Minor clean up of rw_mgr_mem_initialize()Marek Vasut2015-08-081-3/+8
| | | | | | Add kerneldoc and do a minor comment cleanup. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Internal mem_calibrate() cleanup part 6Marek Vasut2015-08-081-1/+5
| | | | | | Add kerneldoc to this function. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Internal mem_calibrate() cleanup part 5Marek Vasut2015-08-081-45/+53
| | | | | | | | | | | | | | | | | This is kind of microseries-within-series indent cleanup. Rework the code for the the middle-loop of the mega-loop this time and deal with the group_failed variable. Instead of checking if the group failed in the previous calibration part, just jump to the end of the loop if calibration did fail and increment the counter. This shaves away one more level of indent while making the code slightly more readable. 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>
* ddr: altera: Internal mem_calibrate() cleanup part 4Marek Vasut2015-08-081-10/+12
| | | | | | | | | | | | | | This is kind of microseries-within-series indent cleanup. Rework the code for the last loop within the mega-loop to make it actually readable and not an insane cryptic pile of indent failure. 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>
* ddr: altera: Internal mem_calibrate() cleanup part 3Marek Vasut2015-08-081-22/+15
| | | | | | | | | | | | | | This is kind of microseries-within-series indent cleanup. Rework the code for the third loop within the middle-loop of the mega-loop to make it actually readable and not an insane cryptic pile of indent failure. 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>
* ddr: altera: Internal mem_calibrate() cleanup part 2Marek Vasut2015-08-081-33/+24
| | | | | | | | | | | | | | This is kind of microseries-within-series indent cleanup. Rework the code for the second loop within the middle-loop of the mega-loop to make it actually readable and not an insane cryptic pile of indent failure. 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>
* ddr: altera: Internal mem_calibrate() cleanup part 1Marek Vasut2015-08-081-23/+17
| | | | | | | | | | | | | | This is kind of microseries-within-series indent cleanup. Rework the code for the first loop within the middle-loop of the mega-loop to make it actually readable and not an insane cryptic pile of indent failure. 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>
* ddr: altera: Trivial mem_calibrate() indent cleanupMarek Vasut2015-08-081-120/+129
| | | | | | | | | | Redo the mega-condition such that if the calibration is to be skipped, the positive branch of the condition does all the work and returns. The negative branch, which is in fact the default behavior, is then converted to a code which is no longer conditional. This trims down the indent by one level. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Minor clean up of mem_skip_calibrate()Marek Vasut2015-08-081-8/+11
| | | | | | | Perform minor coding style cleanup of the mem_skip_calibrate() function, clean up comments and add kerneldoc. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Clean up set_rank_and_odt_mask() part 3Marek Vasut2015-08-081-14/+20
| | | | | | Clean up comments and add kerneldoc. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Clean up set_rank_and_odt_mask() part 2Marek Vasut2015-08-081-11/+9
| | | | | | | Turn the big inner if (RW_MGR_MEM_NUMBER_OF_RANKS == ...) conditional into a switch {} statement instead. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Clean up set_rank_and_odt_mask() part 1Marek Vasut2015-08-081-12/+11
| | | | | | | | | | | First, invert the logic of the if (odt_mode == ...) conditional to make the OFF mode harder to miss. It is a short piece of code right at the end, so move it up. Also, clean up data types and constify where applicable and clean up the cs_and_odt_mask assignment. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Clean up mem_precharge_and_activate()Marek Vasut2015-08-081-8/+11
| | | | | | Perform minor cleanup of this function, fix datatype and add kerneldoc. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Clean up mem_config()Marek Vasut2015-08-082-42/+29
| | | | | | | | | | | Clean mem_config() function. First, reorder the math done in the function such that WLAT and RLAT computation is together. Then, scrap contradictory comments which do not match the result of the math at all. Next, extract the mem_precharge_and_activate() call from the end of the function as it is completely unrelated here. Finally, rename the function to mem_init_latency(). Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Clean up phy_mgr_initialize()Marek Vasut2015-08-081-16/+21
| | | | | | | Zap the cryptic casts and rework the code into a slightly more readable form. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Clean up run_mem_calibrate()Marek Vasut2015-08-081-22/+34
| | | | | | | | | Clean the function up slightly by using clrsetbits_le32() to flip bits in registers instead of cryptic bitmasks. Zap condition checking for PHY_DEBUG_IN_DEBUG_MODE flag, which is never set. Split the calibration report into separate debug_mem_calibrate() function. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Rename initialize() to phy_mgr_initialize()Marek Vasut2015-08-081-2/+2
| | | | | | | Just perform the rename to make the name more descriptive, no functional change. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Init my_param and my_gblMarek Vasut2015-08-081-10/+3
| | | | | | | Init both structures with zeroes and zap all those zeroing shenanigans further down in the sdram_calibration_full(). Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Rework initialize_tracking()Marek Vasut2015-08-081-53/+35
| | | | | | | | | | Clean the function up by getting rid of all the insane XOR-leftshift combos when assembling register values. While at it, remove all the ad-hoc variables necessary for this XOR-leftshift voodoo. Finally, get rid of the iterative division implementation of two constants and replace it with a DIV_ROUND_UP() macro :-) Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Fix ad-hoc iterative division implementationMarek Vasut2015-08-081-9/+2
| | | | | | | | Contemporary CPUs can perform division just fine, use this functionality and zap another implementation of iterative division :-) Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Minor clean up of set_jump_as_return()Marek Vasut2015-08-081-4/+8
| | | | | | Add kerneldoc and do a minor comment cleanup. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Factor out common codeMarek Vasut2015-08-081-99/+76
| | | | | | | | Factor out almost common code from rw_mgr_mem_handoff() and rw_mgr_mem_initialize() into separate rw_mgr_mem_load_user(). No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Factor out instruction loading from rw_mgr_mem_initialize()Marek Vasut2015-08-081-37/+37
| | | | | | Pull the duplicate code out into a separate function. Signed-off-by: Marek Vasut <marex@denx.de>
* ddr: altera: Clean up scc_mgr_apply_group_all_out_delay_add_all_ranks()Marek Vasut2015-08-081-9/+13
| | | | | | | Zap unused group_bgn parameter, fix and constify data types. Document in kerneldoc. No functional change. Signed-off-by: Marek Vasut <marex@denx.de>
OpenPOWER on IntegriCloud