Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 99ed54bb authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ion: Support CMA heap with dma region using size property"

parents 74c3de36 38d1b9a7
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ static inline struct dma_coherent_mem *dev_get_coherent_memory(struct device *de
	return NULL;
}

static inline dma_addr_t dma_get_device_base(struct device *dev,
dma_addr_t dma_get_device_base(struct device *dev,
			       struct dma_coherent_mem *mem)
{
	if (mem->use_dev_dma_pfn_offset)
@@ -37,6 +37,13 @@ static inline dma_addr_t dma_get_device_base(struct device *dev,
	else
		return mem->device_base;
}
EXPORT_SYMBOL(dma_get_device_base);

unsigned long dma_get_size(struct dma_coherent_mem *mem)
{
	return mem->size << PAGE_SHIFT;
}
EXPORT_SYMBOL(dma_get_size);

static int dma_init_coherent_memory(
	phys_addr_t phys_addr, dma_addr_t device_addr, size_t size, int flags,
+4 −0
Original line number Diff line number Diff line
@@ -169,6 +169,10 @@ static int msm_ion_get_heap_dt_data(struct device_node *node,
				base = cma_get_base(dev->cma_area);
				size = cma_get_size(dev->cma_area);
				ret = 0;
			} else if (dev->dma_mem) {
				base = dma_get_device_base(dev, dev->dma_mem);
				size = dma_get_size(dev->dma_mem);
				ret = 0;
			}
		} else {
			base = of_translate_address(pnode, basep);
+15 −0
Original line number Diff line number Diff line
@@ -799,6 +799,10 @@ int dma_declare_coherent_memory(struct device *dev, phys_addr_t phys_addr,
void dma_release_declared_memory(struct device *dev);
void *dma_mark_declared_memory_occupied(struct device *dev,
					dma_addr_t device_addr, size_t size);
dma_addr_t dma_get_device_base(struct device *dev,
			       struct dma_coherent_mem *mem);
unsigned long dma_get_size(struct dma_coherent_mem *mem);

#else
static inline int
dma_declare_coherent_memory(struct device *dev, phys_addr_t phys_addr,
@@ -818,6 +822,17 @@ dma_mark_declared_memory_occupied(struct device *dev,
{
	return ERR_PTR(-EBUSY);
}
static inline dma_addr_t
dma_get_device_base(struct device *dev, struct dma_coherent_mem *mem)
{
	return 0;
}

static inline unsigned long dma_get_size(struct dma_coherent_mem *mem)
{
	return 0;
}

#endif /* CONFIG_HAVE_GENERIC_DMA_COHERENT */

#ifdef CONFIG_HAS_DMA