Module Name: src
Committed By: jmcneill
Date: Tue Feb 15 14:24:23 UTC 2011
Modified Files:
src/sys/external/bsd/drm/dist/bsd-core: drm_memory.c drm_vm.c
Log Message:
map the framebuffer and agp with BUS_SPACE_MAP_PREFETCHABLE
To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/external/bsd/drm/dist/bsd-core/drm_memory.c
cvs rdiff -u -r1.5 -r1.6 src/sys/external/bsd/drm/dist/bsd-core/drm_vm.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/drm/dist/bsd-core/drm_memory.c
diff -u src/sys/external/bsd/drm/dist/bsd-core/drm_memory.c:1.9 src/sys/external/bsd/drm/dist/bsd-core/drm_memory.c:1.10
--- src/sys/external/bsd/drm/dist/bsd-core/drm_memory.c:1.9 Sat Feb 12 14:49:54 2011
+++ src/sys/external/bsd/drm/dist/bsd-core/drm_memory.c Tue Feb 15 14:24:23 2011
@@ -197,7 +197,8 @@
dev->agp_map_data[i].mapped++;
dev->agp_map_data[i].base = map->offset;
dev->agp_map_data[i].size = map->size;
- dev->agp_map_data[i].flags = BUS_SPACE_MAP_LINEAR;
+ dev->agp_map_data[i].flags = BUS_SPACE_MAP_LINEAR |
+ BUS_SPACE_MAP_PREFETCHABLE;
dev->agp_map_data[i].maptype = PCI_MAPREG_TYPE_MEM;
map->fullmap = &(dev->agp_map_data[i]);
map->mapsize = dev->agp_map_data[i].size;
Index: src/sys/external/bsd/drm/dist/bsd-core/drm_vm.c
diff -u src/sys/external/bsd/drm/dist/bsd-core/drm_vm.c:1.5 src/sys/external/bsd/drm/dist/bsd-core/drm_vm.c:1.6
--- src/sys/external/bsd/drm/dist/bsd-core/drm_vm.c:1.5 Sat Jun 20 01:07:09 2009
+++ src/sys/external/bsd/drm/dist/bsd-core/drm_vm.c Tue Feb 15 14:24:23 2011
@@ -45,6 +45,7 @@
#elif defined(__NetBSD__)
paddr_t phys;
unsigned long map_offs;
+ int flags = 0;
#endif
#if defined(__FreeBSD__)
@@ -135,8 +136,11 @@
case _DRM_REGISTERS:
case _DRM_AGP:
#if defined(__NetBSD__)
+ flags = BUS_SPACE_MAP_LINEAR;
+ if (type == _DRM_FRAME_BUFFER || type == _DRM_AGP)
+ flags |= BUS_SPACE_MAP_PREFETCHABLE;
phys = bus_space_mmap(dev->pa.pa_memt, map->offset,
- offset - map->offset, prot, BUS_SPACE_MAP_LINEAR);
+ offset - map->offset, prot, flags);
if (phys == -1) {
DRM_ERROR("bus_space_mmap for %" PRIx64 " failed\n", offset);
return -1;