]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
sunxi: reorganize mctl_mem_matches_* functions
authorAndrey Skvortsov <andrej.skvortzov@gmail.com>
Wed, 27 Dec 2023 21:28:42 +0000 (00:28 +0300)
committerAndre Przywara <andre.przywara@arm.com>
Tue, 5 Mar 2024 01:16:44 +0000 (01:16 +0000)
mctl_mem_matches and mctl_mem_matches_base identical functions. To
avoid code duplication move them to dram_helpers and make
mctl_mem_matches use generic mctl_mem_matches_base.

Signed-off-by: Andrey Skvortsov <andrej.skvortzov@gmail.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
arch/arm/include/asm/arch-sunxi/dram.h
arch/arm/mach-sunxi/dram_helpers.c
arch/arm/mach-sunxi/dram_sunxi_dw.c

index 682daae6b1aea1029ea6ec54ebca52cc11ca545f..9d21b492418dc9244a5c44af197759f06706129d 100644 (file)
@@ -40,5 +40,6 @@
 unsigned long sunxi_dram_init(void);
 void mctl_await_completion(u32 *reg, u32 mask, u32 val);
 bool mctl_mem_matches(u32 offset);
+bool mctl_mem_matches_base(u32 offset, ulong base);
 
 #endif /* _SUNXI_DRAM_H */
index 4a867df7af80e8b1d1b2176b5ad3c460b2db80ce..110825b344faedd835d5c2cbb96011de6e77d7ae 100644 (file)
@@ -26,19 +26,27 @@ void mctl_await_completion(u32 *reg, u32 mask, u32 val)
 }
 
 /*
- * Test if memory at offset offset matches memory at begin of DRAM
+ * Test if memory at offset matches memory at a certain base
  *
  * Note: dsb() is not available on ARMv5 in Thumb mode
  */
 #ifndef CONFIG_MACH_SUNIV
-bool mctl_mem_matches(u32 offset)
+bool mctl_mem_matches_base(u32 offset, ulong base)
 {
        /* Try to write different values to RAM at two addresses */
-       writel(0, CFG_SYS_SDRAM_BASE);
-       writel(0xaa55aa55, (ulong)CFG_SYS_SDRAM_BASE + offset);
+       writel(0, base);
+       writel(0xaa55aa55, base + offset);
        dsb();
        /* Check if the same value is actually observed when reading back */
-       return readl(CFG_SYS_SDRAM_BASE) ==
-              readl((ulong)CFG_SYS_SDRAM_BASE + offset);
+       return readl(base) ==
+              readl(base + offset);
+}
+
+/*
+ * Test if memory at offset matches memory at begin of DRAM
+ */
+bool mctl_mem_matches(u32 offset)
+{
+       return mctl_mem_matches_base(offset, CFG_SYS_SDRAM_BASE);
 }
 #endif
index 3bfcc63211937ea88f0ae84921a4a6d0429d3206..e064ef329e6768d3c686dfd9dd56d310c2d6ab1b 100644 (file)
@@ -650,19 +650,6 @@ static int mctl_channel_init(uint16_t socid, struct dram_para *para)
        return 0;
 }
 
-/*
- * Test if memory at offset offset matches memory at a certain base
- */
-static bool mctl_mem_matches_base(u32 offset, ulong base)
-{
-       /* Try to write different values to RAM at two addresses */
-       writel(0, base);
-       writel(0xaa55aa55, base + offset);
-       dsb();
-       /* Check if the same value is actually observed when reading back */
-       return readl(base) ==
-              readl(base + offset);
-}
 
 static void mctl_auto_detect_dram_size_rank(uint16_t socid, struct dram_para *para, ulong base, struct rank_para *rank)
 {