Displaying 5 results from an estimated 5 matches for "gk20a_instobj_release_dma".
2016 Mar 03
0
[PATCH] instmem/gk20a: add write barrier when releasing DMA object
When using the DMA-API for instmem, we may obtain a write-combined
mapping. For such cases, add a write barrier in
gk20a_instobj_release_dma() to make sure that all writes have reached
memory at this time.
Signed-off-by: Alexandre Courbot <acourbot at nvidia.com>
---
drm/nouveau/nvkm/subdev/instmem/gk20a.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drm/nouveau/nvkm/subdev/instmem/gk20a.c b/drm/nouveau/nvkm/subdev/inst...
2015 Nov 11
2
[PATCH] instmem/gk20a: use DMA API CPU mapping
...;
"this is not going to end well...\n");
goto out;
@@ -232,15 +218,25 @@ out:
node->use_cpt++;
spin_unlock_irqrestore(&imem->lock, flags);
- return node->vaddr;
+ return node->base.vaddr;
}
static void
-gk20a_instobj_release(struct nvkm_memory *memory)
+gk20a_instobj_release_dma(struct nvkm_memory *memory)
{
struct gk20a_instobj *node = gk20a_instobj(memory);
struct gk20a_instmem *imem = node->imem;
struct nvkm_ltc *ltc = imem->base.subdev.device->ltc;
+
+ nvkm_ltc_invalidate(ltc);
+}
+
+static void
+gk20a_instobj_release_iommu(struct nvkm_memory *memory)
+...
2015 Nov 11
0
[PATCH] instmem/gk20a: use DMA API CPU mapping
...t; goto out;
> @@ -232,15 +218,25 @@ out:
> node->use_cpt++;
> spin_unlock_irqrestore(&imem->lock, flags);
>
> - return node->vaddr;
> + return node->base.vaddr;
> }
>
> static void
> -gk20a_instobj_release(struct nvkm_memory *memory)
> +gk20a_instobj_release_dma(struct nvkm_memory *memory)
> {
> struct gk20a_instobj *node = gk20a_instobj(memory);
> struct gk20a_instmem *imem = node->imem;
> struct nvkm_ltc *ltc = imem->base.subdev.device->ltc;
> +
> + nvkm_ltc_invalidate(ltc);
> +}
> +
> +static void
> +gk20a_i...
2019 Sep 16
0
[PATCH 1/2] drm/nouveau: tegra: Fix NULL pointer dereference
...m_ltc_invalidate(ltc);
}
+static u64
+gk20a_instobj_bar2_dma(struct nvkm_memory *memory)
+{
+ struct gk20a_instobj_dma *iobj = gk20a_instobj_dma(memory);
+ u64 addr = ~0ULL;
+
+ if (gk20a_instobj_acquire_dma(&iobj->base.memory))
+ addr = gk20a_instobj_addr(&iobj->base.memory);
+
+ gk20a_instobj_release_dma(&iobj->base.memory);
+
+ return addr;
+}
+
+static u64
+gk20a_instobj_bar2_iommu(struct nvkm_memory *memory)
+{
+ struct gk20a_instobj_iommu *iobj = gk20a_instobj_iommu(memory);
+ u64 addr = ~0ULL;
+
+ if (gk20a_instobj_acquire_iommu(&iobj->base.memory))
+ addr = gk20a_instobj_addr(&...
2019 Sep 16
6
[PATCH 0/2] drm/nouveau: Two more fixes
From: Thierry Reding <treding at nvidia.com>
Hi Ben,
I messed up the ordering of patches in my tree a bit, so these two fixes
got separated from the others. I don't consider these particularily
urgent because the crash that the first one fixes only happens on gp10b
which we don't enable by default yet and the second patch fixes a crash
that only happens on module unload (or driver