drm/radeon/ttm: more VRAM fixes
authorDave Airlie <airlied@linux.ie>
Mon, 16 Jul 2007 04:45:47 +0000 (14:45 +1000)
committerDave Airlie <airlied@linux.ie>
Mon, 16 Jul 2007 04:45:47 +0000 (14:45 +1000)
linux-core/radeon_buffer.c
linux-core/radeon_drv.c

index 611d0d6..5b10c24 100644 (file)
@@ -71,6 +71,11 @@ uint32_t radeon_evict_mask(drm_buffer_object_t *bo)
        case DRM_BO_MEM_LOCAL:
        case DRM_BO_MEM_TT:
                return DRM_BO_FLAG_MEM_LOCAL;
+       case DRM_BO_MEM_VRAM:
+               if (bo->mem.num_pages > 128)
+                       return DRM_BO_MEM_TT;
+               else
+                       return DRM_BO_MEM_LOCAL;
        default:
                return DRM_BO_FLAG_MEM_TT | DRM_BO_FLAG_CACHED;
        }
@@ -88,8 +93,7 @@ int radeon_init_mem_type(drm_device_t * dev, uint32_t type,
                man->drm_bus_maptype = 0;
                break;
        case DRM_BO_MEM_VRAM:
-               man->flags =  _DRM_FLAG_MEMTYPE_MAPPABLE |
-                       _DRM_FLAG_MEMTYPE_FIXED | _DRM_FLAG_NEEDS_IOREMAP;
+               man->flags =  _DRM_FLAG_MEMTYPE_MAPPABLE | _DRM_FLAG_NEEDS_IOREMAP;
                man->io_addr = NULL;
                man->drm_bus_maptype = _DRM_FRAME_BUFFER;
                man->io_offset = drm_get_resource_start(dev, 0);
index d0995b5..079971d 100644 (file)
@@ -71,8 +71,8 @@ static drm_fence_driver_t radeon_fence_driver = {
 #endif
 #ifdef RADEON_HAVE_BUFFER
 
-static uint32_t radeon_mem_prios[] = {DRM_BO_MEM_PRIV0, DRM_BO_MEM_TT, DRM_BO_MEM_LOCAL};
-static uint32_t radeon_busy_prios[] = {DRM_BO_MEM_TT, DRM_BO_MEM_PRIV0, DRM_BO_MEM_LOCAL};
+static uint32_t radeon_mem_prios[] = {DRM_BO_MEM_VRAM, DRM_BO_MEM_TT, DRM_BO_MEM_LOCAL};
+static uint32_t radeon_busy_prios[] = {DRM_BO_MEM_TT, DRM_BO_MEM_VRAM, DRM_BO_MEM_LOCAL};
 
 static drm_bo_driver_t radeon_bo_driver = {
        .mem_type_prio = radeon_mem_prios,