[SPARC]: Add of_io{remap,unmap}().
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
95714e12df
Коммит
3ca9fab410
|
@ -26,6 +26,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/config.h>
|
#include <linux/config.h>
|
||||||
|
#include <linux/module.h>
|
||||||
#include <linux/sched.h>
|
#include <linux/sched.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
|
@ -40,6 +41,7 @@
|
||||||
#include <asm/vaddrs.h>
|
#include <asm/vaddrs.h>
|
||||||
#include <asm/oplib.h>
|
#include <asm/oplib.h>
|
||||||
#include <asm/prom.h>
|
#include <asm/prom.h>
|
||||||
|
#include <asm/of_device.h>
|
||||||
#include <asm/sbus.h>
|
#include <asm/sbus.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
#include <asm/pgalloc.h>
|
#include <asm/pgalloc.h>
|
||||||
|
@ -143,6 +145,21 @@ void __iomem *sbus_ioremap(struct resource *phyres, unsigned long offset,
|
||||||
phyres->start + offset, size, name);
|
phyres->start + offset, size, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void __iomem *of_ioremap(struct resource *res, unsigned long offset,
|
||||||
|
unsigned long size, char *name)
|
||||||
|
{
|
||||||
|
return _sparc_alloc_io(res->flags & 0xF,
|
||||||
|
res->start + offset,
|
||||||
|
size, name);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(of_ioremap);
|
||||||
|
|
||||||
|
void of_iounmap(void __iomem *base, unsigned long size)
|
||||||
|
{
|
||||||
|
iounmap(base);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(of_iounmap);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
*/
|
*/
|
||||||
void sbus_iounmap(volatile void __iomem *addr, unsigned long size)
|
void sbus_iounmap(volatile void __iomem *addr, unsigned long size)
|
||||||
|
|
|
@ -129,6 +129,23 @@ static int of_device_resume(struct device * dev)
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name)
|
||||||
|
{
|
||||||
|
unsigned long ret = res->start + offset;
|
||||||
|
|
||||||
|
if (!request_region(ret, size, name))
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
|
return (void __iomem *) ret;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(of_ioremap);
|
||||||
|
|
||||||
|
void of_iounmap(void __iomem *base, unsigned long size)
|
||||||
|
{
|
||||||
|
release_region((unsigned long) base, size);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(of_iounmap);
|
||||||
|
|
||||||
#ifdef CONFIG_PCI
|
#ifdef CONFIG_PCI
|
||||||
struct bus_type isa_bus_type = {
|
struct bus_type isa_bus_type = {
|
||||||
.name = "isa",
|
.name = "isa",
|
||||||
|
|
|
@ -31,6 +31,9 @@ struct of_device
|
||||||
};
|
};
|
||||||
#define to_of_device(d) container_of(d, struct of_device, dev)
|
#define to_of_device(d) container_of(d, struct of_device, dev)
|
||||||
|
|
||||||
|
extern void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name);
|
||||||
|
extern void of_iounmap(void __iomem *base, unsigned long size);
|
||||||
|
|
||||||
extern const struct of_device_id *of_match_device(
|
extern const struct of_device_id *of_match_device(
|
||||||
const struct of_device_id *matches, const struct of_device *dev);
|
const struct of_device_id *matches, const struct of_device *dev);
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,9 @@ struct of_device
|
||||||
};
|
};
|
||||||
#define to_of_device(d) container_of(d, struct of_device, dev)
|
#define to_of_device(d) container_of(d, struct of_device, dev)
|
||||||
|
|
||||||
|
extern void __iomem *of_ioremap(struct resource *res, unsigned long offset, unsigned long size, char *name);
|
||||||
|
extern void of_iounmap(void __iomem *base, unsigned long size);
|
||||||
|
|
||||||
extern const struct of_device_id *of_match_device(
|
extern const struct of_device_id *of_match_device(
|
||||||
const struct of_device_id *matches, const struct of_device *dev);
|
const struct of_device_id *matches, const struct of_device *dev);
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче