Implement footbridge_mem_bs_mmap. Needed for mmaping igsfb(4)

framebuffer on netwinder.
This commit is contained in:
uwe 2007-07-18 09:47:49 +00:00
parent 00ff9c6dba
commit 0fbcabef5c
1 changed files with 22 additions and 2 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: footbridge_io.c,v 1.12 2005/11/24 13:08:32 yamt Exp $ */ /* $NetBSD: footbridge_io.c,v 1.13 2007/07/18 09:47:49 uwe Exp $ */
/* /*
* Copyright (c) 1997 Causality Limited * Copyright (c) 1997 Causality Limited
@ -39,7 +39,7 @@
*/ */
#include <sys/cdefs.h> #include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: footbridge_io.c,v 1.12 2005/11/24 13:08:32 yamt Exp $"); __KERNEL_RCSID(0, "$NetBSD: footbridge_io.c,v 1.13 2007/07/18 09:47:49 uwe Exp $");
#include <sys/param.h> #include <sys/param.h>
#include <sys/systm.h> #include <sys/systm.h>
@ -56,6 +56,7 @@ bs_protos(generic_armv4);
bs_protos(bs_notimpl); bs_protos(bs_notimpl);
bs_map_proto(footbridge_mem); bs_map_proto(footbridge_mem);
bs_unmap_proto(footbridge_mem); bs_unmap_proto(footbridge_mem);
bs_mmap_proto(footbridge_mem);
/* Declare the footbridge bus space tag */ /* Declare the footbridge bus space tag */
@ -151,6 +152,7 @@ void footbridge_create_mem_bs_tag(t, cookie)
*t = footbridge_bs_tag; *t = footbridge_bs_tag;
t->bs_map = footbridge_mem_bs_map; t->bs_map = footbridge_mem_bs_map;
t->bs_unmap = footbridge_mem_bs_unmap; t->bs_unmap = footbridge_mem_bs_unmap;
t->bs_mmap = footbridge_mem_bs_mmap;
t->bs_cookie = cookie; t->bs_cookie = cookie;
} }
@ -329,3 +331,21 @@ footbridge_bs_barrier(t, bsh, offset, len, flags)
int flags; int flags;
{ {
} }
paddr_t
footbridge_mem_bs_mmap(void *t, bus_addr_t addr, off_t offset,
int prot, int flags)
{
paddr_t pa;
if (addr >= DC21285_PCI_MEM_SIZE
|| offset < 0
|| offset >= DC21285_PCI_MEM_SIZE
|| addr >= DC21285_PCI_MEM_SIZE - offset)
return -1;
pa = DC21285_PCI_MEM_BASE + addr + offset;
return arm_ptob(pa);
}