gpu: host1x: Set up device DMA parameters
authorThierry Reding <treding@nvidia.com>
Mon, 16 Sep 2024 13:33:20 +0000 (15:33 +0200)
committerThierry Reding <treding@nvidia.com>
Tue, 15 Oct 2024 16:46:25 +0000 (18:46 +0200)
In order to store device DMA parameters, the DMA framework depends on
the device's dma_parms field to point at a valid memory location. Add
backing storage for this in struct host1x_memory_context and point to
it.

Reported-by: Jonathan Hunter <jonathanh@nvidia.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240916133320.368620-1-thierry.reding@gmail.com
(cherry picked from commit b4ad4ef374d66cc8df3188bb1ddb65bce5fc9e50)
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/host1x/context.c
include/linux/host1x.h

index 955c971..a6f6779 100644 (file)
@@ -58,6 +58,7 @@ int host1x_memory_context_list_init(struct host1x *host1x)
                ctx->dev.parent = host1x->dev;
                ctx->dev.release = host1x_memory_context_release;
 
+               ctx->dev.dma_parms = &ctx->dma_parms;
                dma_set_max_seg_size(&ctx->dev, UINT_MAX);
 
                err = device_add(&ctx->dev);
index 9c8119e..c4dde3a 100644 (file)
@@ -466,6 +466,7 @@ struct host1x_memory_context {
        refcount_t ref;
        struct pid *owner;
 
+       struct device_dma_parameters dma_parms;
        struct device dev;
        u64 dma_mask;
        u32 stream_id;