diff options
author | Pali Rohár | 2022-07-15 10:13:12 +0200 |
---|---|---|
committer | Stefan Roese | 2022-07-21 10:14:04 +0200 |
commit | 3308933d2fe9cceadd38ed273b6b55bbd846ea43 (patch) | |
tree | 48fefba7371f5ca0703157d35797b42af64cd1b6 /arch/arm/mach-mvebu/dram.c | |
parent | 569b8b8dd8638252a6ecb57a213a0fd898ac20ba (diff) |
arm: mvebu: Avoid reading MVEBU_REG_PCIE_DEVID register too many times
Change detection of platform/cpu from runtime to compile time via config
define. This completely eliminates compiling code which is not going to run
on selected platform. Code which parses and prints device / revision id
still reads device id from MVEBU_REG_PCIE_DEVID register, but only once.
Signed-off-by: Pali Rohár <pali@kernel.org>
Acked-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'arch/arm/mach-mvebu/dram.c')
-rw-r--r-- | arch/arm/mach-mvebu/dram.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/arch/arm/mach-mvebu/dram.c b/arch/arm/mach-mvebu/dram.c index 349e0cc4c18..d398d0f7676 100644 --- a/arch/arm/mach-mvebu/dram.c +++ b/arch/arm/mach-mvebu/dram.c @@ -220,7 +220,7 @@ static int ecc_enabled(void) return 0; } -/* Return the width of the DRAM bus, or 0 for unknown. */ +/* Return the width of the DRAM bus. */ static int bus_width(void) { int full_width = 0; @@ -228,17 +228,11 @@ static int bus_width(void) if (reg_read(REG_SDRAM_CONFIG_ADDR) & (1 << REG_SDRAM_CONFIG_WIDTH_OFFS)) full_width = 1; - switch (mvebu_soc_family()) { - case MVEBU_SOC_AXP: - return full_width ? 64 : 32; - break; - case MVEBU_SOC_A375: - case MVEBU_SOC_A38X: - case MVEBU_SOC_MSYS: - return full_width ? 32 : 16; - default: - return 0; - } +#ifdef CONFIG_ARMADA_XP + return full_width ? 64 : 32; +#else + return full_width ? 32 : 16; +#endif } static int cycle_mode(void) |