Commit 7b6e8053 authored by Timur Tabi's avatar Timur Tabi Committed by Andy Fleming

lib/powerpc: addrmap_phys_to_virt() should return a pointer

addrmap_phys_to_virt() converts a physical address (phys_addr_t) to a
virtual address, so it should return a pointer instead of an unsigned long.
Its counterpart, addrmap_virt_to_phys(), takes a pointer, so now they're
orthogonal.

The only caller of addrmap_phys_to_virt() converts the return value to
a pointer anyway.
Signed-off-by: default avatarTimur Tabi <timur@freescale.com>
Signed-off-by: default avatarAndy Fleming <afleming@freescale.com>
parent 84e34b65
......@@ -295,7 +295,7 @@ static inline void *
map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags)
{
#ifdef CONFIG_ADDR_MAP
return (void *)(addrmap_phys_to_virt(paddr));
return addrmap_phys_to_virt(paddr);
#else
return (void *)((unsigned long)paddr);
#endif
......
......@@ -22,7 +22,7 @@
#include <asm/types.h>
extern phys_addr_t addrmap_virt_to_phys(void *vaddr);
extern unsigned long addrmap_phys_to_virt(phys_addr_t paddr);
extern void *addrmap_phys_to_virt(phys_addr_t paddr);
extern void addrmap_set_entry(unsigned long vaddr, phys_addr_t paddr,
phys_size_t size, int idx);
......
......@@ -47,26 +47,29 @@ phys_addr_t addrmap_virt_to_phys(void * vaddr)
return (phys_addr_t)(~0);
}
unsigned long addrmap_phys_to_virt(phys_addr_t paddr)
void *addrmap_phys_to_virt(phys_addr_t paddr)
{
int i;
for (i = 0; i < CONFIG_SYS_NUM_ADDR_MAP; i++) {
u64 base, upper, addr;
phys_addr_t base, upper;
if (address_map[i].size == 0)
continue;
addr = (u64)paddr;
base = (u64)(address_map[i].paddr);
upper = (u64)(address_map[i].size) + base - 1;
base = address_map[i].paddr;
upper = address_map[i].size + base - 1;
if (addr >= base && addr <= upper) {
return paddr - address_map[i].paddr + address_map[i].vaddr;
if (paddr >= base && paddr <= upper) {
phys_addr_t offset;
offset = address_map[i].paddr - address_map[i].vaddr;
return (void *)(unsigned long)(paddr - offset);
}
}
return (unsigned long)(~0);
return (void *)(~0);
}
void addrmap_set_entry(unsigned long vaddr, phys_addr_t paddr,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment