diff options
author | nwhitehorn <nwhitehorn@FreeBSD.org> | 2010-11-16 03:43:06 +0000 |
---|---|---|
committer | nwhitehorn <nwhitehorn@FreeBSD.org> | 2010-11-16 03:43:06 +0000 |
commit | 19dbb181633741563c511cf84ab2439b4e381d47 (patch) | |
tree | 55f33916036a81dbd026f042a06b2bcf92e2637e /sys/dev | |
parent | e41a851f0380ee8355aa918a5f2ae5bcdd46d6a9 (diff) | |
download | FreeBSD-src-19dbb181633741563c511cf84ab2439b4e381d47.zip FreeBSD-src-19dbb181633741563c511cf84ab2439b4e381d47.tar.gz |
Make drm(4) build, if not work reliably, on PowerPC.
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/drm/drmP.h | 14 | ||||
-rw-r--r-- | sys/dev/drm/drm_agpsupport.c | 2 | ||||
-rw-r--r-- | sys/dev/drm/drm_drv.c | 2 | ||||
-rw-r--r-- | sys/dev/drm/drm_memory.c | 2 | ||||
-rw-r--r-- | sys/dev/drm/drm_sysctl.c | 2 | ||||
-rw-r--r-- | sys/dev/drm/radeon_cs.c | 2 |
6 files changed, 13 insertions, 11 deletions
diff --git a/sys/dev/drm/drmP.h b/sys/dev/drm/drmP.h index af50893..3b121e7 100644 --- a/sys/dev/drm/drmP.h +++ b/sys/dev/drm/drmP.h @@ -80,7 +80,9 @@ struct drm_file; #include <machine/pmap.h> #include <machine/bus.h> #include <machine/resource.h> +#if defined(__i386__) || defined(__amd64__) #include <machine/specialreg.h> +#endif #include <machine/sysarch.h> #include <sys/endian.h> #include <sys/mman.h> @@ -246,20 +248,20 @@ typedef u_int8_t u8; *(volatile u_int8_t *)(((vm_offset_t)(map)->virtual) + \ (vm_offset_t)(offset)) #define DRM_READ16(map, offset) \ - *(volatile u_int16_t *)(((vm_offset_t)(map)->virtual) + \ - (vm_offset_t)(offset)) + le16toh(*(volatile u_int16_t *)(((vm_offset_t)(map)->virtual) + \ + (vm_offset_t)(offset))) #define DRM_READ32(map, offset) \ - *(volatile u_int32_t *)(((vm_offset_t)(map)->virtual) + \ - (vm_offset_t)(offset)) + le32toh(*(volatile u_int32_t *)(((vm_offset_t)(map)->virtual) + \ + (vm_offset_t)(offset))) #define DRM_WRITE8(map, offset, val) \ *(volatile u_int8_t *)(((vm_offset_t)(map)->virtual) + \ (vm_offset_t)(offset)) = val #define DRM_WRITE16(map, offset, val) \ *(volatile u_int16_t *)(((vm_offset_t)(map)->virtual) + \ - (vm_offset_t)(offset)) = val + (vm_offset_t)(offset)) = htole16(val) #define DRM_WRITE32(map, offset, val) \ *(volatile u_int32_t *)(((vm_offset_t)(map)->virtual) + \ - (vm_offset_t)(offset)) = val + (vm_offset_t)(offset)) = htole32(val) #define DRM_VERIFYAREA_READ( uaddr, size ) \ (!useracc(__DECONST(caddr_t, uaddr), size, VM_PROT_READ)) diff --git a/sys/dev/drm/drm_agpsupport.c b/sys/dev/drm/drm_agpsupport.c index 7019fe7..cb98ec1 100644 --- a/sys/dev/drm/drm_agpsupport.c +++ b/sys/dev/drm/drm_agpsupport.c @@ -318,7 +318,7 @@ int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request) if (!dev->agp || !dev->agp->acquired) return EINVAL; - DRM_DEBUG("agp_bind, page_size=%x\n", PAGE_SIZE); + DRM_DEBUG("agp_bind, page_size=%x\n", (int)PAGE_SIZE); entry = drm_agp_lookup_entry(dev, (void *)request->handle); if (entry == NULL || entry->bound) diff --git a/sys/dev/drm/drm_drv.c b/sys/dev/drm/drm_drv.c index 8d9bc69..75902a7 100644 --- a/sys/dev/drm/drm_drv.c +++ b/sys/dev/drm/drm_drv.c @@ -478,7 +478,7 @@ static int drm_load(struct drm_device *dev) retcode = ENOMEM; goto error; } - if (dev->agp != NULL) { + if (dev->agp != NULL && dev->agp->info.ai_aperture_base != 0) { if (drm_mtrr_add(dev->agp->info.ai_aperture_base, dev->agp->info.ai_aperture_size, DRM_MTRR_WC) == 0) dev->agp->mtrr = 1; diff --git a/sys/dev/drm/drm_memory.c b/sys/dev/drm/drm_memory.c index 415b774..409ea7d 100644 --- a/sys/dev/drm/drm_memory.c +++ b/sys/dev/drm/drm_memory.c @@ -73,7 +73,7 @@ void drm_mem_uninit(void) void *drm_ioremap_wc(struct drm_device *dev, drm_local_map_t *map) { - return pmap_mapdev_attr(map->offset, map->size, PAT_WRITE_COMBINING); + return pmap_mapdev_attr(map->offset, map->size, VM_MEMATTR_WRITE_COMBINING); } void *drm_ioremap(struct drm_device *dev, drm_local_map_t *map) diff --git a/sys/dev/drm/drm_sysctl.c b/sys/dev/drm/drm_sysctl.c index 4d9b0e8..1366b07 100644 --- a/sys/dev/drm/drm_sysctl.c +++ b/sys/dev/drm/drm_sysctl.c @@ -259,7 +259,7 @@ static int drm_bufs_info DRM_SYSCTL_HANDLER_ARGS *(1 << dma->bufs[i].page_order), (dma->bufs[i].seg_count * (1 << dma->bufs[i].page_order)) - * PAGE_SIZE / 1024); + * (int)PAGE_SIZE / 1024); } DRM_SYSCTL_PRINT("\n"); for (i = 0; i < dma->buf_count; i++) { diff --git a/sys/dev/drm/radeon_cs.c b/sys/dev/drm/radeon_cs.c index 14fe2fc..6dd82a2 100644 --- a/sys/dev/drm/radeon_cs.c +++ b/sys/dev/drm/radeon_cs.c @@ -765,7 +765,7 @@ static int r600_cs_parse(struct drm_radeon_cs_parser *parser) memcpy(parser->ib, ib_chunk->kdata, ib_chunk->length_dw * sizeof(uint32_t)); /* read back last byte to flush WC buffers */ - rb = readl(((vm_offset_t)parser->ib + (ib_chunk->length_dw-1) * sizeof(uint32_t))); + rb = *(volatile u_int32_t *) (((vm_offset_t)parser->ib + (ib_chunk->length_dw-1) * sizeof(uint32_t))); return 0; } |