]> git.sur5r.net Git - u-boot/blobdiff - arch/mips/lib/cache.c
MIPS: Split I & D cache line size config
[u-boot] / arch / mips / lib / cache.c
index 7482005b6796304f108317284d6427024c7c9613..19a42ff8316fec3168f2fc457a8ec01201977598 100644 (file)
@@ -9,23 +9,13 @@
 #include <asm/cacheops.h>
 #include <asm/mipsregs.h>
 
-#ifdef CONFIG_SYS_CACHELINE_SIZE
-
 static inline unsigned long icache_line_size(void)
 {
-       return CONFIG_SYS_CACHELINE_SIZE;
-}
-
-static inline unsigned long dcache_line_size(void)
-{
-       return CONFIG_SYS_CACHELINE_SIZE;
-}
+       unsigned long conf1, il;
 
-#else /* !CONFIG_SYS_CACHELINE_SIZE */
+       if (!config_enabled(CONFIG_SYS_CACHE_SIZE_AUTO))
+               return CONFIG_SYS_ICACHE_LINE_SIZE;
 
-static inline unsigned long icache_line_size(void)
-{
-       unsigned long conf1, il;
        conf1 = read_c0_config1();
        il = (conf1 & MIPS_CONF1_IL) >> MIPS_CONF1_IL_SHF;
        if (!il)
@@ -36,6 +26,10 @@ static inline unsigned long icache_line_size(void)
 static inline unsigned long dcache_line_size(void)
 {
        unsigned long conf1, dl;
+
+       if (!config_enabled(CONFIG_SYS_CACHE_SIZE_AUTO))
+               return CONFIG_SYS_DCACHE_LINE_SIZE;
+
        conf1 = read_c0_config1();
        dl = (conf1 & MIPS_CONF1_DL) >> MIPS_CONF1_DL_SHF;
        if (!dl)
@@ -43,8 +37,6 @@ static inline unsigned long dcache_line_size(void)
        return 2 << dl;
 }
 
-#endif /* !CONFIG_SYS_CACHELINE_SIZE */
-
 void flush_cache(ulong start_addr, ulong size)
 {
        unsigned long ilsize = icache_line_size();