diff options
author | Eric Anholt <anholt@freebsd.org> | 2005-04-26 05:19:11 +0000 |
---|---|---|
committer | Eric Anholt <anholt@freebsd.org> | 2005-04-26 05:19:11 +0000 |
commit | ec111d70fee0647c4c68a02c723d4a3729c93b56 (patch) | |
tree | 114a3257310a979d3dea484af62322ba007bf1e0 /linux-core/drm_vm.c | |
parent | 31a06d0baca9e378a773ca8bd350860546dd8a79 (diff) |
Convert BSD code to mostly use bus_dma, the dma abstraction for dealing
with IOMMUs and such. There is one usage of the forbidden vtophys()
left in drm_scatter.c which will be fixed up soon. This required a KPI
change for drm_pci_alloc/free() to return/use a drm_dma_handle_t that
keeps track of os-specific bits, rather than just passing around the
vaddr/busaddr/size.
Submitted by: Tonnerre Lombard (partially) Tested on: FreeBSD: Rage128
AGP/PCI Linux: Savage4 AGP/PCI
Diffstat (limited to 'linux-core/drm_vm.c')
-rw-r--r-- | linux-core/drm_vm.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/linux-core/drm_vm.c b/linux-core/drm_vm.c index 02520c76..bb982b80 100644 --- a/linux-core/drm_vm.c +++ b/linux-core/drm_vm.c @@ -218,6 +218,8 @@ void drm_vm_shm_close(struct vm_area_struct *vma) } if (!found_maps) { + drm_dma_handle_t dmah; + switch (map->type) { case _DRM_REGISTERS: case _DRM_FRAME_BUFFER: @@ -237,8 +239,10 @@ void drm_vm_shm_close(struct vm_area_struct *vma) case _DRM_SCATTER_GATHER: break; case _DRM_CONSISTENT: - drm_pci_free(dev, map->size, map->handle, - map->offset); + dmah.vaddr = map->handle; + dmah.busaddr = map->offset; + dmah.size = map->size; + drm_pci_free(dev, &dmah); break; } drm_free(map, sizeof(*map), DRM_MEM_MAPS); |