Index: dev/drm/drm_bufs.c =================================================================== RCS file: /home/ncvs/src/sys/dev/drm/drm_bufs.c,v retrieving revision 1.2 diff -u -r1.2 drm_bufs.c --- dev/drm/drm_bufs.c 24 Apr 2005 19:03:32 -0000 1.2 +++ dev/drm/drm_bufs.c 24 Jun 2005 16:37:08 -0000 @@ -96,7 +96,6 @@ unsigned int resource, int type, int flags) { drm_local_map_t *map; - struct resource *bsr; if (type != _DRM_REGISTERS && type != _DRM_FRAME_BUFFER) return EINVAL; @@ -107,28 +106,29 @@ if (map == NULL) return ENOMEM; - map->rid = resource * 4 + 0x10; - bsr = bus_alloc_resource_any(dev->device, SYS_RES_MEMORY, &map->rid, - RF_ACTIVE | RF_SHAREABLE); - if (bsr == NULL) { - DRM_ERROR("Couldn't allocate %s resource\n", - ((type == _DRM_REGISTERS) ? "mmio" : "framebuffer")); - free(map, M_DRM); - return ENOMEM; + if (type == _DRM_REGISTERS) { + struct resource *bsr; + map->rid = resource * 4 + 0x10; + bsr = bus_alloc_resource_any(dev->device, SYS_RES_MEMORY, &map->rid, + RF_ACTIVE | RF_SHAREABLE); + if (bsr == NULL) { + DRM_ERROR("Couldn't allocate %s resource\n", + ((type == _DRM_REGISTERS) ? "mmio" : "framebuffer")); + free(map, M_DRM); + return ENOMEM; + } + map->bsr = bsr; + map->bst = rman_get_bustag(bsr); + map->bsh = rman_get_bushandle(bsr); + map->handle = rman_get_virtual(bsr); } map->kernel_owned = 1; map->type = type; map->flags = flags; - map->bsr = bsr; - map->bst = rman_get_bustag(bsr); - map->bsh = rman_get_bushandle(bsr); map->offset = start; map->size = len; - if (type == _DRM_REGISTERS) - map->handle = rman_get_virtual(bsr); - DRM_DEBUG("initmap %d,0x%x@0x%lx/0x%lx\n", map->type, map->flags, map->offset, map->size);