[PATCH v6 00/11] reserved-memory regions/CMA in devicetree, again

Grant Likely grant.likely at linaro.org
Tue Mar 11 13:37:15 EDT 2014


Hi Ben, Russell and Catalin,

I've got this series queued up, and I'd like to be ready to merge it
in the next merge window. I'm going to queue it up in linux-next. If
you have any concerns, please shout and it can be removed. I won't ask
Linus to pull it without you giving the okay.

g.

On Fri, Feb 28, 2014 at 1:42 PM, Marek Szyprowski
<m.szyprowski at samsung.com> wrote:
> Hello again!
>
> Here is another update of the support for reserved memory regions in
> device tree. I've fixes a few more minor issues pointed by Grant. See
> changelog for more details.
>
> The initial code for this feature were posted here [1], merged as commit
> 9d8eab7af79cb4ce2de5de39f82c455b1f796963 ("drivers: of: add
> initialization code for dma reserved memory") and later reverted by
> commit 1931ee143b0ab72924944bc06e363d837ba05063. For more information,
> see [2]. Finally a new bindings has been proposed [3] and Josh
> Cartwright a few days ago prepared some code which implements those
> bindings [4]. This finally pushed me again to find some time to finish
> this task and review the code. Josh agreed to give me the ownership of
> this series to continue preparing them for mainline inclusion.
>
> For more information please refer to the changlelog and links below.
>
> [1]: http://lkml.kernel.org/g/1377527959-5080-1-git-send-email-m.szyprowski@samsung.com
> [2]: http://lkml.kernel.org/g/1381476448-14548-1-git-send-email-m.szyprowski@samsung.com
> [3]: http://lkml.kernel.org/g/20131030134702.19B57C402A0@trevor.secretlab.ca
> [4]: http://thread.gmane.org/gmane.linux.documentation/19579
>
> Changelog:
>
> v6:
> - removed the need for "#memory-region-cells" property
> - fixed compilation issues on some systems
> - some other minor code cleanups
>
> v5: https://lkml.org/lkml/2014/2/21/147
> - sliced main patch into several smaller patches on Grant's request
> - fixed coding style issues pointed by Grant
> - use node->phandle value directly instead of parsing properties manually
>
> v4: https://lkml.org/lkml/2014/2/20/150
> - dynamic allocations are processed after all static reservations has been
>   done
> - moved code for handling static reservations to drivers/of/fdt.c
> - removed node matching by string comparison, now phandle values are used
>   directly
> - moved code for DMA and CMA handling directly to
>   drivers/base/dma-{coherent,contiguous}.c
> - added checks for proper #size-cells, #address-cells, ranges properties
>   in /reserved-memory node
> - even more code cleanup
> - added init code for ARM64 and PowerPC
>
> v3: http://article.gmane.org/gmane.linux.documentation/20169/
> - refactored memory reservation code, created common code to parse reg, size,
>   align, alloc-ranges properties
> - added support for multiple tuples in 'reg' property
> - memory is reserved regardless of presence of the driver for its compatible
> - prepared arch specific hooks for memory reservation (defaults use memblock
>   calls)
> - removed node matching by string during device initialization
> - CMA init code: added checks for required region alignment
> - more code cleanup here and there
>
> v2: http://thread.gmane.org/gmane.linux.documentation/19870/
> - removed copying of the node name
> - split shared-dma-pool handling into separate files (one for CMA and one
>   for dma_declare_coherent based implementations) for making the code easier
>   to understand
> - added support for AMBA devices, changed prototypes to use struct decice
>   instead of struct platform_device
> - renamed some functions to better match other names used in drivers/of/
> - restructured the rest of the code a bit for better readability
> - added 'reusable' property to exmaple linux,cma node in documentation
> - exclusive dma (dma_coherent) is used for only handling 'shared-dma-pool'
>   regions without 'reusable' property and CMA is used only for handling
>   'shared-dma-pool' regions with 'reusable' property.
>
> v1: http://thread.gmane.org/gmane.linux.documentation/19579
> - initial version prepared by Josh Cartwright
>
> Summary:
>
> Grant Likely (1):
>   of: document bindings for reserved-memory nodes
>
> Marek Szyprowski (10):
>   drivers: of: add initialization code for static reserved memory
>   drivers: of: add initialization code for dynamic reserved memory
>   drivers: of: add support for custom reserved memory drivers
>   drivers: of: add automated assignment of reserved regions to client
>     devices
>   drivers: of: initialize and assign reserved memory to newly created
>     devices
>   drivers: dma-coherent: add initialization from device tree
>   drivers: dma-contiguous: add initialization from device tree
>   arm: add support for reserved memory defined by device tree
>   arm64: add support for reserved memory defined by device tree
>   powerpc: add support for reserved memory defined by device tree
>
>  .../bindings/reserved-memory/reserved-memory.txt   |  136 ++++++++++
>  arch/arm/Kconfig                                   |    1 +
>  arch/arm/mm/init.c                                 |    2 +
>  arch/arm64/Kconfig                                 |    1 +
>  arch/arm64/mm/init.c                               |    1 +
>  arch/powerpc/Kconfig                               |    1 +
>  arch/powerpc/kernel/prom.c                         |    3 +
>  drivers/base/dma-coherent.c                        |   40 +++
>  drivers/base/dma-contiguous.c                      |  129 +++++++--
>  drivers/of/Kconfig                                 |    6 +
>  drivers/of/Makefile                                |    1 +
>  drivers/of/fdt.c                                   |  140 ++++++++++
>  drivers/of/of_reserved_mem.c                       |  287 ++++++++++++++++++++
>  drivers/of/platform.c                              |    7 +
>  include/asm-generic/vmlinux.lds.h                  |   11 +
>  include/linux/of_fdt.h                             |    3 +
>  include/linux/of_reserved_mem.h                    |   60 ++++
>  17 files changed, 807 insertions(+), 22 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
>  create mode 100644 drivers/of/of_reserved_mem.c
>  create mode 100644 include/linux/of_reserved_mem.h
>
> --
> 1.7.9.5
>



More information about the linux-arm-kernel mailing list