[POWERPC] Remove ioremap64 and fixup_bigphys_addr
In order to suppose platforms with devices above 4Gb on 32 bits platforms with a >32 bits physical address space, we used to have a special ioremap64 along with a fixup routine fixup_bigphys_addr. This shouldn't be necessary anymore as struct resource now supports 64 bits addresses even on 32 bits archs. This patch enables that option when CONFIG_PHYS_64BIT is set and removes ioremap64 and fixup_bigphys_addr. This is a preliminary work for the upcoming merge of 32 and 64 bits io.h Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
committed by
Paul Mackerras
parent
165785e5c0
commit
3d1ea8e8cb
@@ -247,6 +247,7 @@ config PTE_64BIT
|
|||||||
config PHYS_64BIT
|
config PHYS_64BIT
|
||||||
bool 'Large physical address support' if E500
|
bool 'Large physical address support' if E500
|
||||||
depends on 44x || E500
|
depends on 44x || E500
|
||||||
|
select RESOURCES_64BIT
|
||||||
default y if 44x
|
default y if 44x
|
||||||
---help---
|
---help---
|
||||||
This option enables kernel support for larger than 32-bit physical
|
This option enables kernel support for larger than 32-bit physical
|
||||||
|
@@ -141,28 +141,11 @@ void pte_free(struct page *ptepage)
|
|||||||
__free_page(ptepage);
|
__free_page(ptepage);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_PHYS_64BIT
|
|
||||||
void __iomem *
|
void __iomem *
|
||||||
ioremap(phys_addr_t addr, unsigned long size)
|
ioremap(phys_addr_t addr, unsigned long size)
|
||||||
{
|
{
|
||||||
return __ioremap(addr, size, _PAGE_NO_CACHE);
|
return __ioremap(addr, size, _PAGE_NO_CACHE);
|
||||||
}
|
}
|
||||||
#else /* CONFIG_PHYS_64BIT */
|
|
||||||
void __iomem *
|
|
||||||
ioremap64(unsigned long long addr, unsigned long size)
|
|
||||||
{
|
|
||||||
return __ioremap(addr, size, _PAGE_NO_CACHE);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(ioremap64);
|
|
||||||
|
|
||||||
void __iomem *
|
|
||||||
ioremap(phys_addr_t addr, unsigned long size)
|
|
||||||
{
|
|
||||||
phys_addr_t addr64 = fixup_bigphys_addr(addr, size);
|
|
||||||
|
|
||||||
return ioremap64(addr64, size);
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_PHYS_64BIT */
|
|
||||||
EXPORT_SYMBOL(ioremap);
|
EXPORT_SYMBOL(ioremap);
|
||||||
|
|
||||||
void __iomem *
|
void __iomem *
|
||||||
|
@@ -21,11 +21,3 @@ void mpc85xx_restart(char *cmd)
|
|||||||
local_irq_disable();
|
local_irq_disable();
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For now this is a pass through */
|
|
||||||
phys_addr_t fixup_bigphys_addr(phys_addr_t addr, phys_addr_t size)
|
|
||||||
{
|
|
||||||
return addr;
|
|
||||||
};
|
|
||||||
|
|
||||||
EXPORT_SYMBOL(fixup_bigphys_addr);
|
|
||||||
|
Reference in New Issue
Block a user