summaryrefslogtreecommitdiff
path: root/drivers/staging/android/ion/ion.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/android/ion/ion.c')
-rw-r--r--drivers/staging/android/ion/ion.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c
index 62cb8017c18..4e34f6541a7 100644
--- a/drivers/staging/android/ion/ion.c
+++ b/drivers/staging/android/ion/ion.c
@@ -252,8 +252,25 @@ static struct ion_buffer *ion_buffer_create(struct ion_heap *heap,
memory comming from the heaps is ready for dma, ie if it has a
cached mapping that mapping has been invalidated */
for_each_sg(buffer->sg_table->sgl, sg, buffer->sg_table->nents, i) {
+
+
+if(buffer && buffer->heap && buffer->heap->ops && buffer->heap->ops->phys)
+{
+ ion_phys_addr_t addr;
+ size_t len;
+// sg_dma_address(sg) = sg_phys(sg);
+ buffer->heap->ops->phys(buffer->heap, buffer, &addr, &len);
+ sg_dma_address(sg) = addr;
+// sg_dma_len(sg) = sg->length;
+ sg_dma_len(sg) = len;
+}
+else
+{
+
sg_dma_address(sg) = sg_phys(sg);
sg_dma_len(sg) = sg->length;
+}
+
}
mutex_lock(&dev->buffer_lock);
ion_buffer_add(dev, buffer);