|
@@ -65,94 +65,6 @@ int drm_name_info(struct seq_file *m, void *data)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * Called when "/proc/dri/.../vm" is read.
|
|
|
- *
|
|
|
- * Prints information about all mappings in drm_device::maplist.
|
|
|
- */
|
|
|
-int drm_vm_info(struct seq_file *m, void *data)
|
|
|
-{
|
|
|
- struct drm_info_node *node = (struct drm_info_node *) m->private;
|
|
|
- struct drm_device *dev = node->minor->dev;
|
|
|
- struct drm_local_map *map;
|
|
|
- struct drm_map_list *r_list;
|
|
|
-
|
|
|
- /* Hardcoded from _DRM_FRAME_BUFFER,
|
|
|
- _DRM_REGISTERS, _DRM_SHM, _DRM_AGP, and
|
|
|
- _DRM_SCATTER_GATHER and _DRM_CONSISTENT */
|
|
|
- const char *types[] = { "FB", "REG", "SHM", "AGP", "SG", "PCI" };
|
|
|
- const char *type;
|
|
|
- int i;
|
|
|
-
|
|
|
- mutex_lock(&dev->struct_mutex);
|
|
|
- seq_printf(m, "slot offset size type flags address mtrr\n\n");
|
|
|
- i = 0;
|
|
|
- list_for_each_entry(r_list, &dev->maplist, head) {
|
|
|
- map = r_list->map;
|
|
|
- if (!map)
|
|
|
- continue;
|
|
|
- if (map->type < 0 || map->type > 5)
|
|
|
- type = "??";
|
|
|
- else
|
|
|
- type = types[map->type];
|
|
|
-
|
|
|
- seq_printf(m, "%4d 0x%016llx 0x%08lx %4.4s 0x%02x 0x%08lx ",
|
|
|
- i,
|
|
|
- (unsigned long long)map->offset,
|
|
|
- map->size, type, map->flags,
|
|
|
- (unsigned long) r_list->user_token);
|
|
|
- if (map->mtrr < 0)
|
|
|
- seq_printf(m, "none\n");
|
|
|
- else
|
|
|
- seq_printf(m, "%4d\n", map->mtrr);
|
|
|
- i++;
|
|
|
- }
|
|
|
- mutex_unlock(&dev->struct_mutex);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * Called when "/proc/dri/.../bufs" is read.
|
|
|
- */
|
|
|
-int drm_bufs_info(struct seq_file *m, void *data)
|
|
|
-{
|
|
|
- struct drm_info_node *node = (struct drm_info_node *) m->private;
|
|
|
- struct drm_device *dev = node->minor->dev;
|
|
|
- struct drm_device_dma *dma;
|
|
|
- int i, seg_pages;
|
|
|
-
|
|
|
- mutex_lock(&dev->struct_mutex);
|
|
|
- dma = dev->dma;
|
|
|
- if (!dma) {
|
|
|
- mutex_unlock(&dev->struct_mutex);
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
- seq_printf(m, " o size count free segs pages kB\n\n");
|
|
|
- for (i = 0; i <= DRM_MAX_ORDER; i++) {
|
|
|
- if (dma->bufs[i].buf_count) {
|
|
|
- seg_pages = dma->bufs[i].seg_count * (1 << dma->bufs[i].page_order);
|
|
|
- seq_printf(m, "%2d %8d %5d %5d %5d %5d %5ld\n",
|
|
|
- i,
|
|
|
- dma->bufs[i].buf_size,
|
|
|
- dma->bufs[i].buf_count,
|
|
|
- 0,
|
|
|
- dma->bufs[i].seg_count,
|
|
|
- seg_pages,
|
|
|
- seg_pages * PAGE_SIZE / 1024);
|
|
|
- }
|
|
|
- }
|
|
|
- seq_printf(m, "\n");
|
|
|
- for (i = 0; i < dma->buf_count; i++) {
|
|
|
- if (i && !(i % 32))
|
|
|
- seq_printf(m, "\n");
|
|
|
- seq_printf(m, " %d", dma->buflist[i]->list);
|
|
|
- }
|
|
|
- seq_printf(m, "\n");
|
|
|
- mutex_unlock(&dev->struct_mutex);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
/**
|
|
|
* Called when "/proc/dri/.../clients" is read.
|
|
|
*
|
|
@@ -194,7 +106,6 @@ int drm_clients_info(struct seq_file *m, void *data)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
static int drm_gem_one_name_info(int id, void *ptr, void *data)
|
|
|
{
|
|
|
struct drm_gem_object *obj = ptr;
|