From: Michel Dänzer <[email protected]>
Signed-off-by: Michel Dänzer <[email protected]>
---
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel