]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
video: tegra: nvmap: use correct dev ptr during heap create
authorKrishna Reddy <vdumpa@nvidia.com>
Tue, 6 May 2014 21:10:32 +0000 (14:10 -0700)
committerRiham Haidar <rhaidar@nvidia.com>
Sat, 24 May 2014 05:36:05 +0000 (22:36 -0700)
Use correct dev ptr during nvmap heap create.

Change-Id: If1b74cc3f779e4e773065f4281fecdc3654539ac
Signed-off-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-on: http://git-master/r/406026
(cherry picked from commit 1bb1cb7e20a5098cbe27f061b7713cce73b02ca6)
Reviewed-on: http://git-master/r/412804

drivers/video/tegra/nvmap/nvmap_heap.c

index 15256cd6f486d29c739c34ae6e3ef49c08b96a3a..d29a5073ec2d05e77592495cfe451b406460f77f 100644 (file)
@@ -71,9 +71,9 @@ struct nvmap_heap {
        phys_addr_t base;
        /* heap size */
        size_t len;
-       struct device dev;
        struct device *cma_dev;
        struct device *dma_dev;
+       struct device dev;
 };
 
 void nvmap_heap_debugfs_init(struct dentry *heap_root, struct nvmap_heap *heap)
@@ -265,20 +265,26 @@ struct nvmap_heap *nvmap_heap_create(struct device *parent,
        } else {
                int err;
 
-               dev_set_name(&h->dev, "%s", co->name);
-               dma_set_coherent_mask(&h->dev, DMA_BIT_MASK(64));
+               if (co->dma_dev)
+                       h->dma_dev = co->dma_dev;
+               else
+                       /* To continue working with bsp that doesn't
+                        * pass dma_dev ptr.
+                        */
+                       h->dma_dev = &h->dev;
+               dev_set_name(h->dma_dev, "%s", co->name);
+               dma_set_coherent_mask(h->dma_dev, DMA_BIT_MASK(64));
                /* declare Non-CMA heap */
-               err = dma_declare_coherent_memory(&h->dev, 0, base, len,
+               err = dma_declare_coherent_memory(h->dma_dev, 0, base, len,
                                DMA_MEMORY_NOMAP | DMA_MEMORY_EXCLUSIVE);
                if (err & DMA_MEMORY_NOMAP) {
-                       dev_info(&h->dev, "dma coherent mem declare %pa,%zu\n",
+                       dev_info(h->dma_dev, "dma coherent mem declare %pa,%zu\n",
                                &base, len);
                } else {
-                       dev_dbg(&h->dev, "dma coherent declare fail %pa,%zu\n",
+                       dev_dbg(h->dma_dev, "dma coherent declare fail %pa,%zu\n",
                                &base, len);
                        goto fail;
                }
-               h->dma_dev = &h->dev;
        }
 
        h->name = co->name;