Displaying 12 results from an estimated 12 matches for "vaddr_use".
Did you mean:
addr_used
2015 Nov 09
2
[PATCH] instmem/gk20a: fix race conditions
...k held.
+ */
+static void
+gk20a_instobj_recycle_vaddr(struct gk20a_instobj *obj)
+{
+ struct gk20a_instmem *imem = obj->imem;
+ /* there should not be any user left... */
+ WARN_ON(obj->use_cpt);
+ list_del(&obj->vaddr_node);
+ vunmap(obj->vaddr);
+ obj->vaddr = NULL;
+ imem->vaddr_use -= nvkm_memory_size(&obj->memory);
+ nvkm_debug(&imem->base.subdev, "vaddr used: %x/%x\n", imem->vaddr_use,
+ imem->vaddr_max);
+}
+
+/*
+ * Must be called while holding gk20a_instmem::lock
*/
static void
gk20a_instmem_vaddr_gc(struct gk20a_instmem *imem, const...
2015 Nov 11
0
[PATCH] instmem/gk20a: fix race conditions
..._recycle_vaddr(struct gk20a_instobj *obj)
> +{
> + struct gk20a_instmem *imem = obj->imem;
> + /* there should not be any user left... */
> + WARN_ON(obj->use_cpt);
> + list_del(&obj->vaddr_node);
> + vunmap(obj->vaddr);
> + obj->vaddr = NULL;
> + imem->vaddr_use -= nvkm_memory_size(&obj->memory);
> + nvkm_debug(&imem->base.subdev, "vaddr used: %x/%x\n", imem->vaddr_use,
> + imem->vaddr_max);
> +}
> +
> +/*
> + * Must be called while holding gk20a_instmem::lock
> */
> static void
> gk20a_instm...
2023 Dec 08
1
[PATCH] drm/nouveau: Fixup gk20a instobj hierarchy
...ntainer_of((p), struct gk20a_instobj, base.memory)
/*
* Used for objects allocated using the DMA API
@@ -148,7 +148,7 @@ gk20a_instobj_iommu_recycle_vaddr(struct gk20a_instobj_iommu *obj)
list_del(&obj->vaddr_node);
vunmap(obj->base.vaddr);
obj->base.vaddr = NULL;
- imem->vaddr_use -= nvkm_memory_size(&obj->base.memory);
+ imem->vaddr_use -= nvkm_memory_size(&obj->base.base.memory);
nvkm_debug(&imem->base.subdev, "vaddr used: %x/%x\n", imem->vaddr_use,
imem->vaddr_max);
}
@@ -283,7 +283,7 @@ gk20a_instobj_map(struct nvkm_memory...
2015 Oct 26
2
[PATCH] instmem/gk20a: exclusively acquire instobjs
...9bb8eab7..d015633b8edd 100644
--- a/drm/nouveau/nvkm/subdev/instmem/gk20a.c
+++ b/drm/nouveau/nvkm/subdev/instmem/gk20a.c
@@ -92,6 +92,7 @@ struct gk20a_instmem {
/* protects vaddr_* and gk20a_instobj::vaddr* */
spinlock_t lock;
+ unsigned long flags;
/* CPU mappings LRU */
unsigned int vaddr_use;
@@ -188,12 +189,11 @@ gk20a_instobj_acquire(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;
- const u64 size = nvkm_memory_size(memory);
- unsigned long fla...
2023 Dec 14
1
[PATCH] drm/nouveau: Fixup gk20a instobj hierarchy
...ory)
>
> /*
> * Used for objects allocated using the DMA API
> @@ -148,7 +148,7 @@ gk20a_instobj_iommu_recycle_vaddr(struct gk20a_instobj_iommu *obj)
> list_del(&obj->vaddr_node);
> vunmap(obj->base.vaddr);
> obj->base.vaddr = NULL;
> - imem->vaddr_use -= nvkm_memory_size(&obj->base.memory);
> + imem->vaddr_use -= nvkm_memory_size(&obj->base.base.memory);
> nvkm_debug(&imem->base.subdev, "vaddr used: %x/%x\n", imem->vaddr_use,
> imem->vaddr_max);
> }
> @@ -283,7 +283,7 @@ gk20a_in...
2015 Nov 04
0
[PATCH] instmem/gk20a: exclusively acquire instobjs
...au/nvkm/subdev/instmem/gk20a.c
> +++ b/drm/nouveau/nvkm/subdev/instmem/gk20a.c
> @@ -92,6 +92,7 @@ struct gk20a_instmem {
>
> /* protects vaddr_* and gk20a_instobj::vaddr* */
> spinlock_t lock;
> + unsigned long flags;
>
> /* CPU mappings LRU */
> unsigned int vaddr_use;
> @@ -188,12 +189,11 @@ gk20a_instobj_acquire(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;
> - const u64 size = nvkm_memory_size(mem...
2015 Nov 11
2
[PATCH] instmem/gk20a: use DMA API CPU mapping
...truct gk20a_instobj_iommu *obj)
{
- struct gk20a_instmem *imem = obj->imem;
+ struct gk20a_instmem *imem = obj->base.imem;
/* there should not be any user left... */
WARN_ON(obj->use_cpt);
list_del(&obj->vaddr_node);
- vunmap(obj->vaddr);
- obj->vaddr = NULL;
- imem->vaddr_use -= nvkm_memory_size(&obj->memory);
+ vunmap(obj->base.vaddr);
+ obj->base.vaddr = NULL;
+ imem->vaddr_use -= nvkm_memory_size(&obj->base.memory);
nvkm_debug(&imem->base.subdev, "vaddr used: %x/%x\n", imem->vaddr_use,
imem->vaddr_max);
}
@@ -187...
2015 Nov 11
0
[PATCH] instmem/gk20a: use DMA API CPU mapping
...- struct gk20a_instmem *imem = obj->imem;
> + struct gk20a_instmem *imem = obj->base.imem;
> /* there should not be any user left... */
> WARN_ON(obj->use_cpt);
> list_del(&obj->vaddr_node);
> - vunmap(obj->vaddr);
> - obj->vaddr = NULL;
> - imem->vaddr_use -= nvkm_memory_size(&obj->memory);
> + vunmap(obj->base.vaddr);
> + obj->base.vaddr = NULL;
> + imem->vaddr_use -= nvkm_memory_size(&obj->base.memory);
> nvkm_debug(&imem->base.subdev, "vaddr used: %x/%x\n", imem->vaddr_use,
> imem-&...
2017 Jan 30
2
[PATCH] drm/nouveau: gk20a: Turn instmem lock into mutex
...m/nouveau/nvkm/subdev/instmem/gk20a.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c
@@ -94,7 +94,7 @@ struct gk20a_instmem {
struct nvkm_instmem base;
/* protects vaddr_* and gk20a_instobj::vaddr* */
- spinlock_t lock;
+ struct mutex lock;
/* CPU mappings LRU */
unsigned int vaddr_use;
@@ -184,11 +184,10 @@ gk20a_instobj_acquire_iommu(struct nvkm_memory *memory)
struct gk20a_instmem *imem = node->base.imem;
struct nvkm_ltc *ltc = imem->base.subdev.device->ltc;
const u64 size = nvkm_memory_size(memory);
- unsigned long flags;
nvkm_ltc_flush(ltc);
- spin_lock_...
2017 Feb 24
1
[PATCH] drm/nouveau: gk20a: Turn instmem lock into mutex
...ev/instmem/gk20a.c
>> @@ -94,7 +94,7 @@ struct gk20a_instmem {
>> struct nvkm_instmem base;
>>
>> /* protects vaddr_* and gk20a_instobj::vaddr* */
>> - spinlock_t lock;
>> + struct mutex lock;
>>
>> /* CPU mappings LRU */
>> unsigned int vaddr_use;
>> @@ -184,11 +184,10 @@ gk20a_instobj_acquire_iommu(struct nvkm_memory *memory)
>> struct gk20a_instmem *imem = node->base.imem;
>> struct nvkm_ltc *ltc = imem->base.subdev.device->ltc;
>> const u64 size = nvkm_memory_size(memory);
>> - unsigned long f...
2016 Feb 24
0
[PATCH] instmem/gk20a: set DMA mask early
..._instmem_new(struct nvkm_device *device, int index,
spin_lock_init(&imem->lock);
*pimem = &imem->base;
+ ret = dma_set_mask(device->dev, DMA_BIT_MASK(tdev->func->iommu_bit));
+ if (ret)
+ return ret;
+
/* do not allow more than 1MB of CPU-mapped instmem */
imem->vaddr_use = 0;
imem->vaddr_max = 0x100000;
--
2.7.1
2017 Feb 23
0
[PATCH] drm/nouveau: gk20a: Turn instmem lock into mutex
...rivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c
> @@ -94,7 +94,7 @@ struct gk20a_instmem {
> struct nvkm_instmem base;
>
> /* protects vaddr_* and gk20a_instobj::vaddr* */
> - spinlock_t lock;
> + struct mutex lock;
>
> /* CPU mappings LRU */
> unsigned int vaddr_use;
> @@ -184,11 +184,10 @@ gk20a_instobj_acquire_iommu(struct nvkm_memory *memory)
> struct gk20a_instmem *imem = node->base.imem;
> struct nvkm_ltc *ltc = imem->base.subdev.device->ltc;
> const u64 size = nvkm_memory_size(memory);
> - unsigned long flags;
>
>...