On Tue, Nov 17, 2020 at 10:19 AM Minchan Kim minchan@kernel.org wrote:
From: Hyesoo Yu hyesoo.yu@samsung.com
Document devicetree binding for chunk heap on dma heap framework
Signed-off-by: Hyesoo Yu hyesoo.yu@samsung.com Signed-off-by: Minchan Kim minchan@kernel.org
.../bindings/dma-buf/chunk_heap.yaml | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Documentation/devicetree/bindings/dma-buf/chunk_heap.yaml
diff --git a/Documentation/devicetree/bindings/dma-buf/chunk_heap.yaml b/Documentation/devicetree/bindings/dma-buf/chunk_heap.yaml new file mode 100644 index 000000000000..f382bee02778 --- /dev/null +++ b/Documentation/devicetree/bindings/dma-buf/chunk_heap.yaml @@ -0,0 +1,52 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/dma-buf/chunk_heap.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: Device tree binding for chunk heap on DMA HEAP FRAMEWORK
+maintainers:
- Sumit Semwal sumit.semwal@linaro.org
+description: |
- The chunk heap is backed by the Contiguous Memory Allocator (CMA) and
- allocates the buffers that are made up to a list of fixed size chunks
- taken from CMA. Chunk sizes are configurated when the heaps are created.
+properties:
- compatible:
- enum:
- dma_heap,chunk
- memory-region:
- maxItems: 1
- alignment:
- maxItems: 1
+required:
- compatible
- memory-region
- alignment
+additionalProperties: false
+examples:
- |
- reserved-memory {
#address-cells = <2>;
#size-cells = <1>;
chunk_memory: chunk_memory {
compatible = "shared-dma-pool";
reusable;
size = <0x10000000>;
};
- };
- chunk_default_heap: chunk_default_heap {
compatible = "dma_heap,chunk";
memory-region = <&chunk_memory>;
alignment = <0x10000>;
- };
So I suspect Rob will push back on this as he has for other dt bindings related to ion/dmabuf heaps (I tried to push a similar solution to exporting multiple CMA areas via dmabuf heaps).
The proposal he seemed to like best was having an in-kernel function that a driver would call to initialize the heap (associated with the CMA region the driver is interested in). Similar to Kunihiko Hayashi's patch here: - https://lore.kernel.org/lkml/1594948208-4739-1-git-send-email-hayashi.kunihi...
The one sticking point for that patch (which I think is a good one), is that we don't have any in-tree users, so it couldn't be merged yet.
A similar approach might be good here, but again we probably need to have at least one in-tree user which could call such a registration function.
thanks -john