diff options
Diffstat (limited to 'sys/dev/drm2')
| -rw-r--r-- | sys/dev/drm2/drmP.h | 2 | ||||
| -rw-r--r-- | sys/dev/drm2/drm_bufs.c | 4 | ||||
| -rw-r--r-- | sys/dev/drm2/drm_scatter.c | 16 |
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); |
