diff options
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/ion/ion.c | 37 | 
1 files changed, 19 insertions, 18 deletions
| diff --git a/drivers/gpu/ion/ion.c b/drivers/gpu/ion/ion.c index a686af33250..af304ee7285 100644 --- a/drivers/gpu/ion/ion.c +++ b/drivers/gpu/ion/ion.c @@ -1,4 +1,5 @@  /* +   * drivers/gpu/ion/ion.c   *   * Copyright (C) 2011 Google, Inc. @@ -62,7 +63,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_type_mask:	mask of all supported heap types   * @name:		used for debugging   * @task:		used for debugging   * @@ -75,7 +76,7 @@ struct ion_client {  	struct ion_device *dev;  	struct rb_root handles;  	struct mutex lock; -	unsigned int heap_mask; +	unsigned int heap_type_mask;  	const char *name;  	struct task_struct *task;  	pid_t pid; @@ -386,7 +387,7 @@ static void ion_handle_add(struct ion_client *client, struct ion_handle *handle)  }  struct ion_handle *ion_alloc(struct ion_client *client, size_t len, -			     size_t align, unsigned int heap_mask, +			     size_t align, unsigned int heap_id_mask,  			     unsigned int flags)  {  	struct ion_handle *handle; @@ -394,8 +395,8 @@ struct ion_handle *ion_alloc(struct ion_client *client, size_t len,  	struct ion_buffer *buffer = NULL;  	struct ion_heap *heap; -	pr_debug("%s: len %d align %d heap_mask %u flags %x\n", __func__, len, -		 align, heap_mask, flags); +	pr_debug("%s: len %d align %d heap_id_mask %u flags %x\n", __func__, +		 len, align, heap_id_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 @@ -410,10 +411,10 @@ struct ion_handle *ion_alloc(struct ion_client *client, size_t len,  	down_read(&dev->lock);  	plist_for_each_entry(heap, &dev->heaps, node) {  		/* if the client doesn't support this heap type */ -		if (!((1 << heap->type) & client->heap_mask)) +		if (!((1 << heap->type) & client->heap_type_mask))  			continue; -		/* if the caller didn't specify this heap type */ -		if (!((1 << heap->id) & heap_mask)) +		/* if the caller didn't specify this heap id */ +		if (!((1 << heap->id) & heap_id_mask))  			continue;  		buffer = ion_buffer_create(heap, dev, len, align, flags);  		if (!IS_ERR_OR_NULL(buffer)) @@ -588,24 +589,24 @@ static int ion_debug_client_show(struct seq_file *s, void *unused)  {  	struct ion_client *client = s->private;  	struct rb_node *n; -	size_t sizes[ION_NUM_HEAPS] = {0}; -	const char *names[ION_NUM_HEAPS] = {0}; +	size_t sizes[ION_NUM_HEAP_IDS] = {0}; +	const char *names[ION_NUM_HEAP_IDS] = {0};  	int i;  	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); -		enum ion_heap_type type = handle->buffer->heap->type; +		unsigned 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);  	seq_printf(s, "%16.16s: %16.16s\n", "heap_name", "size_in_bytes"); -	for (i = 0; i < ION_NUM_HEAPS; i++) { +	for (i = 0; i < ION_NUM_HEAP_IDS; i++) {  		if (!names[i])  			continue;  		seq_printf(s, "%16.16s: %16u\n", names[i], sizes[i]); @@ -626,7 +627,7 @@ static const struct file_operations debug_client_fops = {  };  struct ion_client *ion_client_create(struct ion_device *dev, -				     unsigned int heap_mask, +				     unsigned int heap_type_mask,  				     const char *name)  {  	struct ion_client *client; @@ -661,7 +662,7 @@ struct ion_client *ion_client_create(struct ion_device *dev,  	client->handles = RB_ROOT;  	mutex_init(&client->lock);  	client->name = name; -	client->heap_mask = heap_mask; +	client->heap_type_mask = heap_type_mask;  	client->task = task;  	client->pid = pid; @@ -1057,7 +1058,7 @@ static long ion_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)  		if (copy_from_user(&data, (void __user *)arg, sizeof(data)))  			return -EFAULT;  		data.handle = ion_alloc(client, data.len, data.align, -					     data.heap_mask, data.flags); +					     data.heap_id_mask, data.flags);  		if (IS_ERR(data.handle))  			return PTR_ERR(data.handle); |