From: Rebecca Schultz Zavin Date: Wed, 23 May 2012 19:55:55 +0000 (-0700) Subject: gpu: ion: Get an sg_table from an ion handle X-Git-Tag: firefly_0821_release~4090^2~731 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=042065151c86d44c858115653d190bbb58571187;p=firefly-linux-kernel-4.4.55.git gpu: ion: Get an sg_table from an ion handle This patch adds an interface to return and sg_table given a valid ion handle. Change-Id: Icd948c60c1af0a4279f337bcd591cd39b46325e8 Signed-off-by: Rebecca Schultz Zavin --- diff --git a/drivers/gpu/ion/ion.c b/drivers/gpu/ion/ion.c index f17f92550134..50a4a4079646 100644 --- a/drivers/gpu/ion/ion.c +++ b/drivers/gpu/ion/ion.c @@ -616,8 +616,8 @@ void ion_client_destroy(struct ion_client *client) kfree(client); } -struct sg_table *ion_map_dma(struct ion_client *client, - struct ion_handle *handle) +struct sg_table *ion_sg_table(struct ion_client *client, + struct ion_handle *handle) { struct ion_buffer *buffer; struct sg_table *table; @@ -635,10 +635,6 @@ struct sg_table *ion_map_dma(struct ion_client *client, return table; } -void ion_unmap_dma(struct ion_client *client, struct ion_handle *handle) -{ -} - static struct sg_table *ion_map_dma_buf(struct dma_buf_attachment *attachment, enum dma_data_direction direction) { diff --git a/include/linux/ion.h b/include/linux/ion.h index 3bf85fd0438b..d44ce69446dd 100644 --- a/include/linux/ion.h +++ b/include/linux/ion.h @@ -149,7 +149,7 @@ void ion_free(struct ion_client *client, struct ion_handle *handle); * This function queries the heap for a particular handle to get the * handle's physical address. It't output is only correct if * a heap returns physically contiguous memory -- in other cases - * this api should not be implemented -- ion_map_dma should be used + * this api should not be implemented -- ion_sg_table should be used * instead. Returns -EINVAL if the handle is invalid. This has * no implications on the reference counting of the handle -- * the returned value may not be valid if the caller is not @@ -158,6 +158,17 @@ void ion_free(struct ion_client *client, struct ion_handle *handle); int ion_phys(struct ion_client *client, struct ion_handle *handle, ion_phys_addr_t *addr, size_t *len); +/** + * ion_map_dma - return an sg_table describing a handle + * @client: the client + * @handle: the handle + * + * This function returns the sg_table describing + * a particular ion handle. + */ +struct sg_table *ion_sg_table(struct ion_client *client, + struct ion_handle *handle); + /** * ion_map_kernel - create mapping for the given handle * @client: the client