Instead of shifting phys right by 20 and then again left by the same
amount, just convert the code to expect it to be in unit of bytes all
the time.

Signed-off-by: Andrey Smirnov <[email protected]>
---
 arch/arm/cpu/mmu.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/arch/arm/cpu/mmu.c b/arch/arm/cpu/mmu.c
index f0f279ffa..06c9045b7 100644
--- a/arch/arm/cpu/mmu.c
+++ b/arch/arm/cpu/mmu.c
@@ -196,9 +196,8 @@ void *map_io_sections(unsigned long phys, void *_start, 
size_t size)
 {
        unsigned long start = (unsigned long)_start, sec;
 
-       phys >>= 20;
-       for (sec = start; sec < start + size; sec += (1 << 20))
-               ttb[sec >> 20] = (phys++ << 20) | PMD_SECT_DEF_UNCACHED;
+       for (sec = start; sec < start + size; sec += (1 << 20), phys += SZ_1M)
+               ttb[sec >> 20] = phys | PMD_SECT_DEF_UNCACHED;
 
        dma_flush_range((unsigned long)ttb, (unsigned long)ttb + 0x4000);
        tlb_invalidate();
-- 
2.17.0


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to