rk: ion: revise client debug info
authorCMY <cmy@rock-chips.com>
Wed, 9 Apr 2014 07:48:17 +0000 (15:48 +0800)
committerCMY <cmy@rock-chips.com>
Wed, 9 Apr 2014 07:48:17 +0000 (15:48 +0800)
drivers/staging/android/ion/ion.c

index 0fe30de661698c693a466b7f927fbcdbf7d523f8..885cb60530bf7dad1b8c5c24a4368b9e88029b74 100755 (executable)
@@ -891,53 +891,55 @@ out:
        mutex_unlock(&client->lock);
 }
 EXPORT_SYMBOL(ion_unmap_iommu);
-#endif
 
 static int ion_debug_client_show_buffer_map(struct seq_file *s, struct ion_buffer *buffer)
 {
        struct ion_iommu_map *iommu_map;
-       struct rb_node *node;
        const struct rb_root *rb = &(buffer->iommu_maps);
+       struct rb_node *node = rb_first(rb);
 
-       pr_debug("%s: (%p)\n", __func__, buffer);
+       pr_debug("%s: buffer(%p)\n", __func__, buffer);
 
        mutex_lock(&buffer->lock);
 
-       while ((node = rb_first(rb)) != 0) {
+       while (node != NULL) {
                iommu_map = rb_entry(node, struct ion_iommu_map, node);
-               /* set ref count to 1 to force release */
-               seq_printf(s, "\t%08x@%08lx : %d\n", iommu_map->mapped_size, 
-                               iommu_map->iova_addr,
-                               atomic_read(&iommu_map->ref.refcount));
+               seq_printf(s, "%16.16s:   0x%08lx   0x%08lx %8zuKB %4d\n",
+                       "<iommu>", iommu_map->iova_addr, 0, iommu_map->mapped_size>>10,
+                       atomic_read(&iommu_map->ref.refcount));
+
+               node = rb_next(node);
        }
 
        mutex_unlock(&buffer->lock);
 
        return 0;
 }
+#endif
 
 static int ion_debug_client_show_buffer(struct seq_file *s, void *unused)
 {
        struct ion_client *client = s->private;
        struct rb_node *n;
-       ion_phys_addr_t addr;
-       size_t len;
 
        seq_printf(s, "----------------------------------------------------\n");
-       seq_printf(s, "%16.s: %12.s %8.s %4.s %4.s %4.s\n", "heap_name", "addr",
+       seq_printf(s, "%16.s: %12.s %12.s %10.s %4.s %4.s %4.s\n", "heap_name", "VA", "PA",
                "size", "HC", "IBR", "IHR");
        mutex_lock(&client->lock);
        for (n = rb_first(&client->handles); n; n = rb_next(n)) {
                struct ion_handle *handle = rb_entry(n, struct ion_handle, node);
                struct ion_buffer *buffer = handle->buffer;
-               if (buffer->heap->ops->phys) {
-                       buffer->heap->ops->phys(buffer->heap, buffer, &addr, &len);
-                       seq_printf(s, "%16.16s: 0x%08lx %8zuKB %4d %4d %4d\n",
-                               buffer->heap->name, addr, len>>10, buffer->handle_count,
-                               atomic_read(&buffer->ref.refcount),
-                               atomic_read(&handle->ref.refcount));
-               }
+               ion_phys_addr_t pa = 0;
+               size_t len = buffer->size;
+               if (buffer->heap->ops->phys)
+                       buffer->heap->ops->phys(buffer->heap, buffer, &pa, &len);
+
+               seq_printf(s, "%16.16s:   0x%08lx   0x%08lx %8zuKB %4d %4d %4d\n",
+                       buffer->heap->name, buffer->vaddr, pa, len>>10, buffer->handle_count,
+                       atomic_read(&buffer->ref.refcount), atomic_read(&handle->ref.refcount));
+#ifdef CONFIG_ROCKCHIP_IOMMU
                ion_debug_client_show_buffer_map(s, buffer);
+#endif
        }
        mutex_unlock(&client->lock);