aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/drm2
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/drm2')
-rw-r--r--sys/dev/drm2/drmP.h2
-rw-r--r--sys/dev/drm2/drm_bufs.c4
-rw-r--r--sys/dev/drm2/drm_scatter.c16
3 files changed, 11 insertions, 11 deletions
diff --git a/sys/dev/drm2/drmP.h b/sys/dev/drm2/drmP.h
index ab11ad7f8cc0..f66f190958b5 100644
--- a/sys/dev/drm2/drmP.h
+++ b/sys/dev/drm2/drmP.h
@@ -497,7 +497,7 @@ struct drm_agp_head {
* Scatter-gather memory.
*/
struct drm_sg_mem {
- vm_offset_t vaddr;
+ void *vaddr;
vm_paddr_t *busaddr;
vm_pindex_t pages;
};
diff --git a/sys/dev/drm2/drm_bufs.c b/sys/dev/drm2/drm_bufs.c
index 9648acebea4f..c2eb7fe19258 100644
--- a/sys/dev/drm2/drm_bufs.c
+++ b/sys/dev/drm2/drm_bufs.c
@@ -392,8 +392,8 @@ static int drm_addmap_core(struct drm_device * dev, resource_size_t offset,
free(map, DRM_MEM_MAPS);
return -EINVAL;
}
- map->handle = (void *)(dev->sg->vaddr + offset);
- map->offset += dev->sg->vaddr;
+ map->handle = (char *)dev->sg->vaddr + offset;
+ map->offset += (uintptr_t)dev->sg->vaddr;
break;
case _DRM_CONSISTENT:
/* dma_addr_t is 64bit on i386 with CONFIG_HIGHMEM64G,
diff --git a/sys/dev/drm2/drm_scatter.c b/sys/dev/drm2/drm_scatter.c
index 1ccc88a5f69c..13040ee43b7b 100644
--- a/sys/dev/drm2/drm_scatter.c
+++ b/sys/dev/drm2/drm_scatter.c
@@ -35,7 +35,7 @@ __FBSDID("$FreeBSD$");
#define DEBUG_SCATTER 0
-static inline vm_offset_t drm_vmalloc_dma(vm_size_t size)
+static inline void *drm_vmalloc_dma(vm_size_t size)
{
return kmem_alloc_attr(size, M_NOWAIT | M_ZERO, 0,
BUS_SPACE_MAXADDR_32BIT, VM_MEMATTR_WRITE_COMBINING);
@@ -46,7 +46,7 @@ void drm_sg_cleanup(struct drm_sg_mem * entry)
if (entry == NULL)
return;
- if (entry->vaddr != 0)
+ if (entry->vaddr != NULL)
kmem_free(entry->vaddr, IDX_TO_OFF(entry->pages));
free(entry->busaddr, DRM_MEM_SGLISTS);
@@ -83,7 +83,7 @@ int drm_sg_alloc(struct drm_device *dev, struct drm_scatter_gather * request)
}
entry->vaddr = drm_vmalloc_dma(size);
- if (entry->vaddr == 0) {
+ if (entry->vaddr == NULL) {
free(entry->busaddr, DRM_MEM_DRIVER);
free(entry, DRM_MEM_DRIVER);
return -ENOMEM;
@@ -91,14 +91,14 @@ int drm_sg_alloc(struct drm_device *dev, struct drm_scatter_gather * request)
for (pindex = 0; pindex < entry->pages; pindex++) {
entry->busaddr[pindex] =
- vtophys(entry->vaddr + IDX_TO_OFF(pindex));
+ vtophys((uintptr_t)entry->vaddr + IDX_TO_OFF(pindex));
}
- request->handle = entry->vaddr;
+ request->handle = (uintptr_t)entry->vaddr;
dev->sg = entry;
- DRM_DEBUG("allocated %ju pages @ 0x%08zx, contents=%08lx\n",
+ DRM_DEBUG("allocated %ju pages @ %p, contents=%08lx\n",
entry->pages, entry->vaddr, *(unsigned long *)entry->vaddr);
return 0;
@@ -125,10 +125,10 @@ int drm_sg_free(struct drm_device *dev, void *data,
entry = dev->sg;
dev->sg = NULL;
- if (!entry || entry->vaddr != request->handle)
+ if (!entry || (uintptr_t)entry->vaddr != request->handle)
return -EINVAL;
- DRM_DEBUG("free 0x%zx\n", entry->vaddr);
+ DRM_DEBUG("free %p\n", entry->vaddr);
drm_sg_cleanup(entry);