From: François Tigeot Date: Thu, 18 Jul 2013 18:43:28 +0000 (+0200) Subject: drm2: Make the PAT code more compatible with FreeBSD X-Git-Tag: v3.7.0~698 X-Git-Url: https://gitweb.dragonflybsd.org/dragonfly.git/commitdiff_plain/9c89a01fb50f3e6ef3d179c1c01a89f24eb76172 drm2: Make the PAT code more compatible with FreeBSD * drm_mmap() still has issues with the memattr parameter --- diff --git a/sys/dev/drm2/drm_gem.c b/sys/dev/drm2/drm_gem.c index bfd15a1b81..509a733928 100644 --- a/sys/dev/drm2/drm_gem.c +++ b/sys/dev/drm2/drm_gem.c @@ -106,7 +106,6 @@ drm_gem_object_init(struct drm_device *dev, struct drm_gem_object *obj, obj->refcount = 1; obj->handle_count = 0; obj->size = size; - obj->vm_obj->pat_mode = PAT_WRITE_COMBINING; /* XXX */ return (0); } diff --git a/sys/dev/drm2/drm_vm.c b/sys/dev/drm2/drm_vm.c index 44720dfa10..cbbf16ee4a 100644 --- a/sys/dev/drm2/drm_vm.c +++ b/sys/dev/drm2/drm_vm.c @@ -120,13 +120,17 @@ drm_mmap(struct dev_mmap_args *ap) switch (type) { case _DRM_FRAME_BUFFER: case _DRM_AGP: - /* memattr set by type in map's object */ +#if 0 /* XXX */ + memattr = VM_MEMATTR_WRITE_COMBINING; +#endif /* FALLTHROUGH */ case _DRM_REGISTERS: phys = map->offset + offset; break; case _DRM_SCATTER_GATHER: - /* memattr set by type in map's object */ +#if 0 /* XXX */ + memattr = VM_MEMATTR_WRITE_COMBINING; +#endif /* FALLTHROUGH */ case _DRM_CONSISTENT: case _DRM_SHM: diff --git a/sys/vm/device_pager.c b/sys/vm/device_pager.c index 57ea82aa9c..6f939191e1 100644 --- a/sys/vm/device_pager.c +++ b/sys/vm/device_pager.c @@ -360,7 +360,7 @@ static int old_dev_pager_fault(vm_object_t object, vm_ooffset_t offset, * Replace the passed in reqpage page with our own fake page * and free up all the original pages. */ - page = dev_pager_getfake(paddr, object->pat_mode); + page = dev_pager_getfake(paddr, object->memattr); TAILQ_INSERT_TAIL(&object->un_pager.devp.devp_pglist, page, pageq); vm_object_hold(object);