gpu: ion: Use heap->id as the identifier instead of heap->type

Message ID CAMcxFTRzO+h6ivAAf6bMKaCra_JKhmmbbeGw+Un2bKsDwGgCwg@mail.gmail.com
State New
Headers show

Commit Message

Nishanth Peethambaran Dec. 12, 2012, 12:53 a.m.
The heap mask used during client create was a bitmask of heap types
and the heap mask used during buffer allocation was a bitmask of
heap ids. Now, both of them assume a bitmask of heap ids.
The debugfs show functions for client and heap were showing info
for the heap type instead of showing info of the individual heap.

Change-Id: I9c2c142a63865f3d4250cd681dc5cde9638ca09f
Signed-off-by: Nishanth Peethambaran <nishanth@broadcom.com>
---
 drivers/gpu/ion/ion.c |   26 +++++++++++++-------------
 include/linux/ion.h   |    8 ++++----
 2 files changed, 17 insertions(+), 17 deletions(-)

  *		to this allocation

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/ion/ion.c b/drivers/gpu/ion/ion.c
index 6aa817a..b808972 100644
--- a/drivers/gpu/ion/ion.c
+++ b/drivers/gpu/ion/ion.c
@@ -62,7 +62,7 @@  struct ion_device {
  * @dev:		backpointer to ion device
  * @handles:		an rb tree of all the handles in this client
  * @lock:		lock protecting the tree of handles
- * @heap_mask:		mask of all supported heaps
+ * @heap_mask:		mask of all supported heap ids
  * @name:		used for debugging
  * @task:		used for debugging
  *
@@ -398,7 +398,7 @@  struct ion_handle *ion_alloc(struct ion_client
*client, size_t len,
 		 align, heap_mask, flags);
 	/*
 	 * traverse the list of heaps available in this system in priority
-	 * order.  If the heap type is supported by the client, and matches the
+	 * order.  If the heap id is supported by the client, and matches the
 	 * request of the caller allocate from it.  Repeat until allocate has
 	 * succeeded or all heaps have been tried
 	 */
@@ -410,10 +410,10 @@  struct ion_handle *ion_alloc(struct ion_client
*client, size_t len,
 	down_read(&dev->lock);
 	for (n = rb_first(&dev->heaps); n != NULL; n = rb_next(n)) {
 		struct ion_heap *heap = rb_entry(n, struct ion_heap, node);
-		/* if the client doesn't support this heap type */
-		if (!((1 << heap->type) & client->heap_mask))
+		/* if the client doesn't support this heap id */
+		if (!((1 << heap->id) & client->heap_mask))
 			continue;
-		/* if the caller didn't specify this heap type */
+		/* if the caller didn't specify this heap id */
 		if (!((1 << heap->id) & heap_mask))
 			continue;
 		buffer = ion_buffer_create(heap, dev, len, align, flags);
@@ -597,11 +597,11 @@  static int ion_debug_client_show(struct seq_file
*s, void *unused)
 	for (n = rb_first(&client->handles); n; n = rb_next(n)) {
 		struct ion_handle *handle = rb_entry(n, struct ion_handle,
 						     node);
-		enum ion_heap_type type = handle->buffer->heap->type;
+		int id = handle->buffer->heap->id;

-		if (!names[type])
-			names[type] = handle->buffer->heap->name;
-		sizes[type] += handle->buffer->size;
+		if (!names[id])
+			names[id] = handle->buffer->heap->name;
+		sizes[id] += handle->buffer->size;
 	}
 	mutex_unlock(&client->lock);

@@ -1176,7 +1176,7 @@  static const struct file_operations ion_fops = {
 };

 static size_t ion_debug_heap_total(struct ion_client *client,
-				   enum ion_heap_type type)
+				   int id)
 {
 	size_t size = 0;
 	struct rb_node *n;
@@ -1186,7 +1186,7 @@  static size_t ion_debug_heap_total(struct
ion_client *client,
 		struct ion_handle *handle = rb_entry(n,
 						     struct ion_handle,
 						     node);
-		if (handle->buffer->heap->type == type)
+		if (handle->buffer->heap->id == id)
 			size += handle->buffer->size;
 	}
 	mutex_unlock(&client->lock);
@@ -1207,7 +1207,7 @@  static int ion_debug_heap_show(struct seq_file
*s, void *unused)
 	for (n = rb_first(&dev->clients); n; n = rb_next(n)) {
 		struct ion_client *client = rb_entry(n, struct ion_client,
 						     node);
-		size_t size = ion_debug_heap_total(client, heap->type);
+		size_t size = ion_debug_heap_total(client, heap->id);
 		if (!size)
 			continue;
 		if (client->task) {
@@ -1228,7 +1228,7 @@  static int ion_debug_heap_show(struct seq_file
*s, void *unused)
 	for (n = rb_first(&dev->buffers); n; n = rb_next(n)) {
 		struct ion_buffer *buffer = rb_entry(n, struct ion_buffer,
 						     node);
-		if (buffer->heap->type != heap->type)
+		if (buffer->heap->id != heap->id)
 			continue;
 		total_size += buffer->size;
 		if (!buffer->handle_count) {
diff --git a/include/linux/ion.h b/include/linux/ion.h
index a7d399c..f0399ae 100644
--- a/include/linux/ion.h
+++ b/include/linux/ion.h
@@ -72,7 +72,7 @@  struct ion_buffer;
 /**
  * struct ion_platform_heap - defines a heap in the given platform
  * @type:	type of the heap from ion_heap_type enum
- * @id:		unique identifier for heap.  When allocating (lower numbers
+ * @id:		unique identifier for heap.  When allocating (lower numbers
  * 		will be allocated from first)
  * @name:	used for debug purposes
  * @base:	base address of heap in physical memory if applicable
@@ -114,7 +114,7 @@  void ion_reserve(struct ion_platform_data *data);
 /**
  * ion_client_create() -  allocate a client and returns it
  * @dev:	the global ion device
- * @heap_mask:	mask of heaps this client can allocate from
+ * @heap_mask:	mask of heap ids this client can allocate from
  * @name:	used for debugging
  */
 struct ion_client *ion_client_create(struct ion_device *dev,
@@ -135,7 +135,7 @@  void ion_client_destroy(struct ion_client *client);
  * @len:	size of the allocation
  * @align:	requested allocation alignment, lots of hardware blocks have
  *		alignment requirements of some kind
- * @heap_mask:	mask of heaps to allocate from, if multiple bits are set
+ * @heap_mask:	mask of heap ids to allocate from, if multiple bits are set
  *		heaps will be tried in order from lowest to highest order bit
  * @flags:	heap flags, the low 16 bits are consumed by ion, the high 16
  *		bits are passed on to the respective heap and can be heap
@@ -236,7 +236,7 @@  struct ion_handle *ion_import_dma_buf(struct
ion_client *client, int fd);
  * struct ion_allocation_data - metadata passed from userspace for allocations
  * @len:	size of the allocation
  * @align:	required alignment of the allocation
- * @heap_mask:	mask of heaps to allocate from
+ * @heap_mask:	mask of heap ids to allocate from
  * @flags:	flags passed to heap
  * @handle:	pointer that will be populated with a cookie to use to refer