Re: [git pull] drm patches for 2.6.27-rc1
From: Keith Packard
Date: Sun Oct 19 2008 - 00:15:25 EST
On Sun, 2008-10-19 at 00:32 +0200, Ingo Molnar wrote:
> Mind sending patches for this? :-)
Here's what these functions would look like as wrappers on top of the
existing APIs:
/* x86_64 style */
static inline struct io_reserve *
iomap_reserve(unsigned long base, unsigned long size)
{
return (struct io_reserve *) ioremap_wc(base, size);
}
static inline void *
iomap_atomic(struct io_reserve *reserve, unsigned long offset)
{
return ((char *) reserve) + offset;
}
static inline void
iounmap_atomic(void *vaddr)
{
}
static inline void
iomap_unreserve(struct io_reserve *reserve)
{
iounmap(reserve);
}
/* HIGHMEM style */
#if 0
static inline struct io_reserve *
iomap_reserve(unsigned long base, unsigned long size)
{
return (struct io_reserve *) base;
}
static inline void *
iomap_atomic(struct io_reserve *reserve, unsigned long offset)
{
offset += (unsigned long) reserve;
return kmap_atomic(offset >> PAGE_SHIFT, KM_USER0);
}
static inline void
iounmap_atomic(void *vaddr)
{
kunmap_atomic(vaddr, KM_USER0);
}
static inline void
iomap_unreserve(struct io_reserve *reserve)
{
}
#endif
/* 32-bit non-HIGHMEM style */
#if 0
static inline struct io_reserve *
iomap_reserve(unsigned long base, unsigned long size)
{
return NULL;
}
static inline void *
iomap_atomic(struct io_reserve *reserve, unsigned long offset)
{
return NULL;
}
static inline void
iounmap_atomic(void *vaddr)
{
}
static inline void
iomap_unreserve(struct io_reserve *reserve)
{
}
#endif
>
> Ingo
--
keith.packard@xxxxxxxxx
Attachment:
signature.asc
Description: This is a digitally signed message part