[ARM] 3070/2: Add __ioremap_pfn() API
Patch from Deepak Saxena In working on adding 36-bit addressed supersection support to ioremap(), I came to the conclusion that it would be far simpler to do so by just splitting __ioremap() into a main external interface and adding an __ioremap_pfn() function that takes a pfn + offset into the page that __ioremap() can call. This way existing callers of __ioremap() won't have to change their code and 36-bit systems will just call __ioremap_pfn() and we will not have to deal with unsigned long long variables. Note that __ioremap_pfn() should _NOT_ be called directly by drivers but is reserved for use by arch_ioremap() implementations that map 32-bit resource regions into the real 36-bit address and then call this new function. Signed-off-by: Deepak Saxena <dsaxena@plexity.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:

committed by
Russell King

parent
16ed926eee
commit
9d4ae7276a
@@ -56,7 +56,12 @@ extern void __raw_readsl(const void __iomem *addr, void *data, int longlen);
|
||||
|
||||
/*
|
||||
* Architecture ioremap implementation.
|
||||
*
|
||||
* __ioremap takes CPU physical address.
|
||||
*
|
||||
* __ioremap_pfn takes a Page Frame Number and an offset into that page
|
||||
*/
|
||||
extern void __iomem * __ioremap_pfn(unsigned long, unsigned long, size_t, unsigned long);
|
||||
extern void __iomem * __ioremap(unsigned long, size_t, unsigned long);
|
||||
extern void __iounmap(void __iomem *addr);
|
||||
|
||||
@@ -261,6 +266,7 @@ out:
|
||||
*
|
||||
* ioremap takes a PCI memory address, as specified in
|
||||
* Documentation/IO-mapping.txt.
|
||||
*
|
||||
*/
|
||||
#ifndef __arch_ioremap
|
||||
#define ioremap(cookie,size) __ioremap(cookie,size,0)
|
||||
|
Reference in New Issue
Block a user