Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3ca9fab4 authored by David S. Miller's avatar David S. Miller Committed by David S. Miller
Browse files

[SPARC]: Add of_io{remap,unmap}().

parent 95714e12
Loading
Loading
Loading
Loading
+17 −0
Original line number Original line Diff line number Diff line
@@ -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)
+17 −0
Original line number Original line Diff line number Diff line
@@ -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",
+3 −0
Original line number Original line Diff line number Diff line
@@ -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);


+3 −0
Original line number Original line Diff line number Diff line
@@ -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);