Rather than coping the private data into the heap, in several other heaps that have required private information, I've put the ion_heap struct inside another structure that also contained the private fields. So you would have:
struct ion_cma_heap { struct ion_heap *heap; struct device *dev; .... other private data ... };
Then you can retrieve the private data using container_of on the heap. It's a little more verbose, but I think a lot more flexible.
Rebecca
On Wed, Mar 20, 2013 at 10:33 AM, Benjamin Gaignard < benjamin.gaignard@linaro.org> wrote:
copy private field from platform configuration to internal heap structure.
Signed-off-by: Benjamin Gaignard benjamin.gaignard@linaro.org
drivers/gpu/ion/ion_heap.c | 1 + drivers/gpu/ion/ion_priv.h | 2 ++ 2 files changed, 3 insertions(+)
diff --git a/drivers/gpu/ion/ion_heap.c b/drivers/gpu/ion/ion_heap.c index 225ef94..3ec6357 100644 --- a/drivers/gpu/ion/ion_heap.c +++ b/drivers/gpu/ion/ion_heap.c @@ -162,6 +162,7 @@ struct ion_heap *ion_heap_create(struct ion_platform_heap *heap_data)
heap->name = heap_data->name; heap->id = heap_data->id;
heap->priv = heap_data->priv; return heap;
}
diff --git a/drivers/gpu/ion/ion_priv.h b/drivers/gpu/ion/ion_priv.h index 50568147..c79a942 100644 --- a/drivers/gpu/ion/ion_priv.h +++ b/drivers/gpu/ion/ion_priv.h @@ -132,6 +132,7 @@ struct ion_heap_ops {
- @task: task struct of deferred free thread
- @debug_show: called when heap debug file is read to add
any
heap specific debug info to output
- @priv: heap private data
- Represents a pool of memory from which buffers can be made. In some
- systems the only heap is regular system memory allocated via vmalloc.
@@ -151,6 +152,7 @@ struct ion_heap { wait_queue_head_t waitqueue; struct task_struct *task; int (*debug_show)(struct ion_heap *heap, struct seq_file *, void *);
void *priv;
};
/**
1.7.10