drm/radeon: Give userspace more accurate information about available memory.
authorMichel Dänzer <daenzer@vmware.com>
Tue, 4 Aug 2009 22:19:51 +0000 (00:19 +0200)
committerDave Airlie <airlied@redhat.com>
Wed, 2 Dec 2009 01:37:10 +0000 (11:37 +1000)
This patch varies from the original and just removes memory for kernel
pinned objects.

Signed-off-by: Michel Dänzer <daenzer@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_gem.c

index d880edf254dbad63a73e99ee7c05de40757e9ecc..9c4f895a026efec01e215aa85b7365f20b9efb6a 100644 (file)
@@ -158,9 +158,13 @@ int radeon_gem_info_ioctl(struct drm_device *dev, void *data,
        struct drm_radeon_gem_info *args = data;
 
        args->vram_size = rdev->mc.real_vram_size;
-       /* FIXME: report somethings that makes sense */
-       args->vram_visible = rdev->mc.real_vram_size - (4 * 1024 * 1024);
-       args->gart_size = rdev->mc.gtt_size;
+       args->vram_visible = rdev->mc.real_vram_size;
+       if (rdev->stollen_vga_memory)
+               args->vram_visible -= radeon_object_size(rdev->stollen_vga_memory);
+       if (rdev->fbdev_robj)
+               args->vram_visible -= radeon_object_size(rdev->fbdev_robj);
+       args->gart_size = rdev->mc.gtt_size - rdev->cp.ring_size - 4096 -
+               RADEON_IB_POOL_SIZE*64*1024;
        return 0;
 }