Message ID | 20240916133320.368620-1-thierry.reding@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | gpu: host1x: Set up device DMA parameters | expand |
On Mon, Sep 16, 2024 at 03:33:20PM +0200, Thierry Reding wrote: > From: Thierry Reding <treding@nvidia.com> > > 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> > Signed-off-by: Thierry Reding <treding@nvidia.com> Looks good: Reviewed-by: Christoph Hellwig <hch@lst.de> I guess this another thing caught by the WARN_ON in the dma_set* functions?
On 16/09/2024 15:58, Christoph Hellwig wrote: > On Mon, Sep 16, 2024 at 03:33:20PM +0200, Thierry Reding wrote: >> From: Thierry Reding <treding@nvidia.com> >> >> 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> >> Signed-off-by: Thierry Reding <treding@nvidia.com> > > Looks good: > > Reviewed-by: Christoph Hellwig <hch@lst.de> > > I guess this another thing caught by the WARN_ON in the dma_set* > functions? Yes indeed! This works for me. Tested-by: Jon Hunter <jonathanh@nvidia.com> Thanks Jon
On Mon, Sep 16, 2024 at 03:33:20PM GMT, Thierry Reding wrote: > From: Thierry Reding <treding@nvidia.com> > > 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> > Signed-off-by: Thierry Reding <treding@nvidia.com> > --- > drivers/gpu/host1x/context.c | 1 + > include/linux/host1x.h | 1 + > 2 files changed, 2 insertions(+) Applied. Thierry
diff --git a/drivers/gpu/host1x/context.c b/drivers/gpu/host1x/context.c index 955c971c528d..a6f6779662a3 100644 --- a/drivers/gpu/host1x/context.c +++ b/drivers/gpu/host1x/context.c @@ -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); diff --git a/include/linux/host1x.h b/include/linux/host1x.h index 9c8119ed13a4..c4dde3aafcac 100644 --- a/include/linux/host1x.h +++ b/include/linux/host1x.h @@ -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;