On 7/14/2014 12:12 AM, Marek Szyprowski wrote: > Add support for handling 'shared-dma-pool' reserved-memory device tree > nodes. > > Based on previous code provided by Josh Cartwright <joshc@xxxxxxxxxxxxxx> > > Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > --- > drivers/base/dma-coherent.c | 40 ++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 40 insertions(+) > > diff --git a/drivers/base/dma-coherent.c b/drivers/base/dma-coherent.c > index 7d6e84a51424..b20cbe095d86 100644 > --- a/drivers/base/dma-coherent.c > +++ b/drivers/base/dma-coherent.c > @@ -218,3 +218,43 @@ int dma_mmap_from_coherent(struct device *dev, struct vm_area_struct *vma, > return 0; > } > EXPORT_SYMBOL(dma_mmap_from_coherent); > + > +/* > + * Support for reserved memory regions defined in device tree > + */ > +#ifdef CONFIG_OF_RESERVED_MEM > +#include <linux/of.h> > +#include <linux/of_fdt.h> > +#include <linux/of_reserved_mem.h> > + > +static void rmem_dma_device_init(struct reserved_mem *rmem, struct device *dev) > +{ > + dma_declare_coherent_memory(dev, rmem->base, rmem->base, > + rmem->size, DMA_MEMORY_MAP | DMA_MEMORY_EXCLUSIVE); > +} > + > +static void rmem_dma_device_release(struct reserved_mem *rmem, > + struct device *dev) > +{ > + dma_release_declared_memory(dev); > +} > + > +static const struct reserved_mem_ops rmem_dma_ops = { > + .device_init = rmem_dma_device_init, > + .device_release = rmem_dma_device_release, > +}; > + > +static int __init rmem_dma_setup(struct reserved_mem *rmem) > +{ > + unsigned long node = rmem->fdt_node; > + > + if (of_get_flat_dt_prop(node, "reusable", NULL)) > + return -EINVAL; > + Can we add a check for 'no-map' property here? At least on ARM, the lack of the no-map property causes the ioremap to fail. Thanks, Laura -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html