diff --git a/linux-core/drm_mm.c b/linux-core/drm_mm.c index cf0d92fa..00c4428e 100644 --- a/linux-core/drm_mm.c +++ b/linux-core/drm_mm.c @@ -294,3 +294,21 @@ void drm_mm_takedown(struct drm_mm * mm) } EXPORT_SYMBOL(drm_mm_takedown); + +int drm_mm_print(struct drm_mm *mm, const char *name) +{ + struct list_head *list; + const struct list_head *free_stack = &mm->fl_entry; + const struct list_head *mm_stack = &mm->ml_entry; + struct drm_mm_node *entry; + + DRM_DEBUG("Memory usage for '%s'\n", name ? name : "unknown"); + list_for_each(list, mm_stack) { + entry = list_entry(list, struct drm_mm_node, ml_entry); + DRM_DEBUG("\t0x%08lx %li %s pages\n", entry->start, entry->size, + entry->free ? "free" : "used"); + } + + return 0; +} +EXPORT_SYMBOL(drm_mm_print); diff --git a/shared-core/i915_init.c b/shared-core/i915_init.c index 1ddba5cc..daf821c5 100644 --- a/shared-core/i915_init.c +++ b/shared-core/i915_init.c @@ -262,6 +262,10 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) intel_modeset_init(dev); drm_initial_config(dev, false); + + drm_mm_print(&dev->bm.man[DRM_BO_MEM_VRAM].manager, "VRAM"); + drm_mm_print(&dev->bm.man[DRM_BO_MEM_TT].manager, "TT"); + drm_irq_install(dev); return 0;