Displaying 11 results from an estimated 11 matches for "nvkm_ltc_invalid".
2017 Jan 30
2
[PATCH] drm/nouveau: gk20a: Turn instmem lock into mutex
...... */
if (WARN_ON(node->use_cpt == 0))
@@ -252,7 +250,7 @@ gk20a_instobj_release_iommu(struct nvkm_memory *memory)
list_add_tail(&node->vaddr_node, &imem->vaddr_lru);
out:
- spin_unlock_irqrestore(&imem->lock, flags);
+ mutex_unlock(&imem->lock);
wmb();
nvkm_ltc_invalidate(ltc);
@@ -306,19 +304,18 @@ gk20a_instobj_dtor_iommu(struct nvkm_memory *memory)
struct gk20a_instmem *imem = node->base.imem;
struct device *dev = imem->base.subdev.device->dev;
struct nvkm_mm_node *r;
- unsigned long flags;
int i;
if (unlikely(list_empty(&node->base...
2015 Oct 26
2
[PATCH] instmem/gk20a: exclusively acquire instobjs
...e(&imem->lock, flags);
/* add ourselves to the LRU list so our CPU mapping can be freed */
list_add_tail(&node->vaddr_node, &imem->vaddr_lru);
- spin_unlock_irqrestore(&imem->lock, flags);
+ spin_unlock_irqrestore(&imem->lock, imem->flags);
wmb();
nvkm_ltc_invalidate(ltc);
--
2.6.1
2017 Feb 24
1
[PATCH] drm/nouveau: gk20a: Turn instmem lock into mutex
...0a_instobj_release_iommu(struct nvkm_memory *memory)
>> list_add_tail(&node->vaddr_node, &imem->vaddr_lru);
>>
>> out:
>> - spin_unlock_irqrestore(&imem->lock, flags);
>> + mutex_unlock(&imem->lock);
>>
>> wmb();
>> nvkm_ltc_invalidate(ltc);
>> @@ -306,19 +304,18 @@ gk20a_instobj_dtor_iommu(struct nvkm_memory *memory)
>> struct gk20a_instmem *imem = node->base.imem;
>> struct device *dev = imem->base.subdev.device->dev;
>> struct nvkm_mm_node *r;
>> - unsigned long flags;
>>...
2015 Nov 04
0
[PATCH] instmem/gk20a: exclusively acquire instobjs
...* add ourselves to the LRU list so our CPU mapping can be freed */
> list_add_tail(&node->vaddr_node, &imem->vaddr_lru);
>
> - spin_unlock_irqrestore(&imem->lock, flags);
> + spin_unlock_irqrestore(&imem->lock, imem->flags);
>
> wmb();
> nvkm_ltc_invalidate(ltc);
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20151105/4f513a82/attachment.sig>
2016 Mar 03
0
[PATCH] instmem/gk20a: add write barrier when releasing DMA object
...em/gk20a.c
+++ b/drm/nouveau/nvkm/subdev/instmem/gk20a.c
@@ -228,6 +228,8 @@ gk20a_instobj_release_dma(struct nvkm_memory *memory)
struct gk20a_instmem *imem = node->imem;
struct nvkm_ltc *ltc = imem->base.subdev.device->ltc;
+ /* in case we got a write-combined mapping */
+ wmb();
nvkm_ltc_invalidate(ltc);
}
--
2.7.2
2019 Sep 16
0
[PATCH 1/2] drm/nouveau: tegra: Fix NULL pointer dereference
...em/gk20a.c b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c
index 985f2990ab0d..b0493f8df1fe 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c
@@ -261,6 +261,34 @@ gk20a_instobj_release_iommu(struct nvkm_memory *memory)
nvkm_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...
2015 Sep 03
3
[PATCH 0/3] New instmem implementation for Tegra
Due to the lack of implicit synchronization between CPU and GPU on Tegra systems
(like what PCI provides for dGPUs), the instmem implementation of GK20A/GM20B
relied on the slow, legacy PRAMIN so that CPU accesses used the same path as
GPU, making sure we see the same data on both ends.
The recent Nouveau refactoring introduced acquire/release functions on instmem
that help us understand the
2017 Feb 23
0
[PATCH] drm/nouveau: gk20a: Turn instmem lock into mutex
...> @@ -252,7 +250,7 @@ gk20a_instobj_release_iommu(struct nvkm_memory *memory)
> list_add_tail(&node->vaddr_node, &imem->vaddr_lru);
>
> out:
> - spin_unlock_irqrestore(&imem->lock, flags);
> + mutex_unlock(&imem->lock);
>
> wmb();
> nvkm_ltc_invalidate(ltc);
> @@ -306,19 +304,18 @@ gk20a_instobj_dtor_iommu(struct nvkm_memory *memory)
> struct gk20a_instmem *imem = node->base.imem;
> struct device *dev = imem->base.subdev.device->dev;
> struct nvkm_mm_node *r;
> - unsigned long flags;
> int i;
>
> if...
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
2015 Nov 11
2
[PATCH] instmem/gk20a: use DMA API CPU mapping
...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)
+{
+ struct gk20a_instobj_iommu *node = gk20a_instobj_iommu(memory);
+ struct gk20a_instmem *imem = node->base.imem;
+ struct nvkm_ltc *ltc = imem->base.subdev.device->ltc;
unsigned long flags;
spin_l...
2015 Nov 11
0
[PATCH] instmem/gk20a: use DMA API CPU mapping
...tobj_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)
> +{
> + struct gk20a_instobj_iommu *node = gk20a_instobj_iommu(memory);
> + struct gk20a_instmem *imem = node->base.imem;
> + struct nvkm_ltc *ltc = imem->base.subdev.device-&g...