From: Michel Dänzer <daen...@vmware.com> Signed-off-by: Michel Dänzer <daen...@vmware.com> --- drivers/gpu/drm/radeon/radeon_gem.c | 34 +++++++++++++++++++++++++++++++--- 1 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c index eb51603..c3dd0fc 100644 --- a/drivers/gpu/drm/radeon/radeon_gem.c +++ b/drivers/gpu/drm/radeon/radeon_gem.c @@ -27,6 +27,7 @@ */ #include "drmP.h" #include "drm.h" +#include "drm_crtc_helper.h" #include "radeon_drm.h" #include "radeon.h" @@ -156,11 +157,38 @@ int radeon_gem_info_ioctl(struct drm_device *dev, void *data, { struct radeon_device *rdev = dev->dev_private; struct drm_radeon_gem_info *args = data; + struct drm_crtc *crtc; args->vram_size = rdev->mc.vram_size; - /* FIXME: report somethings that makes sense */ - args->vram_visible = rdev->mc.vram_size - (4 * 1024 * 1024); - args->gart_size = rdev->mc.gtt_size; + args->vram_visible = rdev->mc.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); + list_for_each_entry(crtc, &rdev->ddev->mode_config.crtc_list, head) { + if (drm_helper_crtc_in_use(crtc)) { + struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); + + if (radeon_crtc->cursor_bo && + radeon_crtc->cursor_bo->driver_private) + args->vram_visible -= + radeon_object_size(radeon_crtc-> + cursor_bo-> + driver_private); + + if (crtc->fb) { + struct radeon_framebuffer *rfb = + to_radeon_framebuffer(crtc->fb); + + if (rfb->obj && rfb->obj->driver_private) + args->vram_visible -= + radeon_object_size(rfb->obj-> + driver_private); + } + } + } + args->gart_size = rdev->mc.gtt_size - rdev->cp.ring_size - 4096 - + RADEON_IB_POOL_SIZE*64*1024; return 0; } -- 1.6.3.3 ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july -- _______________________________________________ Dri-devel mailing list Dri-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dri-devel