From: Nikita Kiryanov Date: Wed, 20 Aug 2014 12:08:58 +0000 (+0300) Subject: arm: mx6: ddr: fix cs0_end calculation X-Git-Tag: v2014.10-rc3~66^2~3^2~27 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=07ee927d2c319b477232affad7d3b6119ac079c9;p=oweals%2Fu-boot.git arm: mx6: ddr: fix cs0_end calculation Current way of calculation CS0_END field for MMDCx_MDASP register is problematic because in most cases the user is forced to define cs_density in an unnatural way: as value - 2, instead of value. This breaks the abstraction provided by struct mx6_ddr_sysinfo because the user is forced to be aware of the way the calculation is performed. Refactor the calculation. Cc: Stefano Babic Cc: Tim Harvey Signed-off-by: Nikita Kiryanov --- diff --git a/arch/arm/cpu/armv7/mx6/ddr.c b/arch/arm/cpu/armv7/mx6/ddr.c index d22f232238..7b5c1e4dd7 100644 --- a/arch/arm/cpu/armv7/mx6/ddr.c +++ b/arch/arm/cpu/armv7/mx6/ddr.c @@ -309,9 +309,7 @@ void mx6_dram_cfg(const struct mx6_ddr_sysinfo *sysinfo, twtr = ROUND(MAX(4 * clkper, 7500) / clkper, 1) - 1; trcd = trp; trtp = twtr; - cs0_end = (4 * sysinfo->cs_density <= 120) ? - 4 * sysinfo->cs_density + 7 : - 127; + cs0_end = 4 * sysinfo->cs_density - 1; debug("density:%d Gb (%d Gb per chip)\n", sysinfo->cs_density, ddr3_cfg->density);