Displaying 16 results from an estimated 16 matches for "init_dma_attrs".
2015 Feb 17
1
[PATCH v3 4/6] instmem/gk20a: use DMA attributes
..._ctor(struct nvkm_object *parent, struct nvkm_object *engine,
>
> node->mem = &node->_mem;
>
> - node->cpuaddr = dma_alloc_coherent(dev, npages << PAGE_SHIFT,
> - &node->handle, GFP_KERNEL);
> + init_dma_attrs(&node->attrs);
> + /*
> + * We will access this memory through PRAMIN and thus do not need a
> + * consistent CPU pointer
> + */
> + dma_set_attr(DMA_ATTR_NON_CONSISTENT, &node->attrs);
> + dma_set_attr(DMA_ATTR_WEAK_ORDERING, &...
2015 Jan 23
0
[PATCH 4/6] instmem/gk20a: use DMA attributes
...vkm_instobj_destroy(&node->base);
}
@@ -126,8 +131,19 @@ gk20a_instobj_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
node->mem = &node->_mem;
- node->cpuaddr = dma_alloc_coherent(dev, npages << PAGE_SHIFT,
- &node->handle, GFP_KERNEL);
+ init_dma_attrs(&node->attrs);
+ /*
+ * We will access this memory through PRAMIN and thus do not need a
+ * consistent CPU pointer
+ */
+ dma_set_attr(DMA_ATTR_NON_CONSISTENT, &node->attrs);
+ dma_set_attr(DMA_ATTR_WEAK_ORDERING, &node->attrs);
+ dma_set_attr(DMA_ATTR_WRITE_COMBINE, &n...
2015 Feb 17
0
[PATCH v3 4/6] instmem/gk20a: use DMA attributes
...vkm_instobj_destroy(&node->base);
}
@@ -126,8 +131,19 @@ gk20a_instobj_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
node->mem = &node->_mem;
- node->cpuaddr = dma_alloc_coherent(dev, npages << PAGE_SHIFT,
- &node->handle, GFP_KERNEL);
+ init_dma_attrs(&node->attrs);
+ /*
+ * We will access this memory through PRAMIN and thus do not need a
+ * consistent CPU pointer
+ */
+ dma_set_attr(DMA_ATTR_NON_CONSISTENT, &node->attrs);
+ dma_set_attr(DMA_ATTR_WEAK_ORDERING, &node->attrs);
+ dma_set_attr(DMA_ATTR_WRITE_COMBINE, &n...
2016 Jun 10
0
[PATCH v4 14/44] drm/nouveau: dma-mapping: Use unsigned long for dma_attrs
...imem->attrs);
if (!node->base.vaddr) {
nvkm_error(subdev, "cannot allocate DMA memory\n");
return -ENOMEM;
@@ -597,10 +597,9 @@ gk20a_instmem_new(struct nvkm_device *device, int index,
nvkm_info(&imem->base.subdev, "using IOMMU\n");
} else {
- init_dma_attrs(&imem->attrs);
- dma_set_attr(DMA_ATTR_NON_CONSISTENT, &imem->attrs);
- dma_set_attr(DMA_ATTR_WEAK_ORDERING, &imem->attrs);
- dma_set_attr(DMA_ATTR_WRITE_COMBINE, &imem->attrs);
+ imem->attrs = DMA_ATTR_NON_CONSISTENT |
+ DMA_ATTR_WEAK_ORDERING |
+...
2016 Jun 30
0
[PATCH v5 14/44] drm/nouveau: dma-mapping: Use unsigned long for dma_attrs
...imem->attrs);
if (!node->base.vaddr) {
nvkm_error(subdev, "cannot allocate DMA memory\n");
return -ENOMEM;
@@ -597,10 +597,9 @@ gk20a_instmem_new(struct nvkm_device *device, int index,
nvkm_info(&imem->base.subdev, "using IOMMU\n");
} else {
- init_dma_attrs(&imem->attrs);
- dma_set_attr(DMA_ATTR_NON_CONSISTENT, &imem->attrs);
- dma_set_attr(DMA_ATTR_WEAK_ORDERING, &imem->attrs);
- dma_set_attr(DMA_ATTR_WRITE_COMBINE, &imem->attrs);
+ imem->attrs = DMA_ATTR_NON_CONSISTENT |
+ DMA_ATTR_WEAK_ORDERING |
+...
2016 Jul 13
0
[PATCH v6 15/46] drm/nouveau: dma-mapping: Use unsigned long for dma_attrs
...imem->attrs);
if (!node->base.vaddr) {
nvkm_error(subdev, "cannot allocate DMA memory\n");
return -ENOMEM;
@@ -597,10 +597,9 @@ gk20a_instmem_new(struct nvkm_device *device, int index,
nvkm_info(&imem->base.subdev, "using IOMMU\n");
} else {
- init_dma_attrs(&imem->attrs);
- dma_set_attr(DMA_ATTR_NON_CONSISTENT, &imem->attrs);
- dma_set_attr(DMA_ATTR_WEAK_ORDERING, &imem->attrs);
- dma_set_attr(DMA_ATTR_WRITE_COMBINE, &imem->attrs);
+ imem->attrs = DMA_ATTR_NON_CONSISTENT |
+ DMA_ATTR_WEAK_ORDERING |
+...
2015 Feb 17
8
[PATCH v3 0/6] nouveau/gk20a: RAM device removal & IOMMU support
Thanks Ilia for the v2 review! Here is the v3 of this IOMMU support for GK20A
series.
Changes since v2:
- Cleaner changes for ltc
- Fixed typos in gk20a instmem IOMMU comments
Changes since v1:
- Add missing else condition in ltc
- Remove extra flags that slipped into nouveau_display.c and nv84_fence.c.
Original cover letter:
Patches 1-3 make the presence of a RAM device optional, and remove
2015 Feb 20
6
[PATCH v4 0/6] nouveau/gk20a: RAM device removal & IOMMU support
Changes since v3:
- Use a single dma_attr for all DMA-API allocations in instmem instead of one
per allocation
- Use device.info.ram_size instead of pfb->ram to check whether VRAM is present
outside of nvkm
Changes since v2:
- Cleaner changes for ltc
- Fixed typos in gk20a instmem IOMMU comments
Changes since v1:
- Add missing else condition in ltc
- Remove extra flags that slipped into
2015 Nov 11
2
[PATCH] instmem/gk20a: use DMA API CPU mapping
...v->iommu.mm;
imem->domain = tdev->iommu.domain;
imem->iommu_pgshift = tdev->iommu.pgshift;
- imem->cpu_map = gk20a_instobj_cpu_map_iommu;
imem->iommu_bit = tdev->func->iommu_bit;
nvkm_info(&imem->base.subdev, "using IOMMU\n");
} else {
init_dma_attrs(&imem->attrs);
- /* We will access the memory through our own mapping */
dma_set_attr(DMA_ATTR_NON_CONSISTENT, &imem->attrs);
dma_set_attr(DMA_ATTR_WEAK_ORDERING, &imem->attrs);
dma_set_attr(DMA_ATTR_WRITE_COMBINE, &imem->attrs);
- dma_set_attr(DMA_ATTR_NO_KER...
2015 Feb 11
0
[PATCH v2 6/6] instmem/gk20a: add IOMMU support
...-
- npages = size >> PAGE_SHIFT;
-
ret = nvkm_instobj_create_(parent, engine, oclass, sizeof(*node),
- (void **)&node);
- *pobject = nv_object(node);
+ (void **)&node);
+ *_node = &node->base;
if (ret)
return ret;
- node->mem = &node->_mem;
-
init_dma_attrs(&node->attrs);
/*
* We will access this memory through PRAMIN and thus do not need a
@@ -154,16 +236,132 @@ gk20a_instobj_ctor(struct nvkm_object *parent, struct nvkm_object *engine,
nv_warn(priv, "memory not aligned as requested: %pad (0x%x)\n",
&node->handle, a...
2015 Nov 11
0
[PATCH] instmem/gk20a: use DMA API CPU mapping
...= tdev->iommu.domain;
> imem->iommu_pgshift = tdev->iommu.pgshift;
> - imem->cpu_map = gk20a_instobj_cpu_map_iommu;
> imem->iommu_bit = tdev->func->iommu_bit;
>
> nvkm_info(&imem->base.subdev, "using IOMMU\n");
> } else {
> init_dma_attrs(&imem->attrs);
> - /* We will access the memory through our own mapping */
> dma_set_attr(DMA_ATTR_NON_CONSISTENT, &imem->attrs);
> dma_set_attr(DMA_ATTR_WEAK_ORDERING, &imem->attrs);
> dma_set_attr(DMA_ATTR_WRITE_COMBINE, &imem->attrs);
> - dma...
2016 Jun 10
1
[PATCH v4 00/44] dma-mapping: Use unsigned long for dma_attrs
Hi,
This is fourth approach for replacing struct dma_attrs with unsigned
long.
The main patch (1/44) doing the change is split into many subpatches
for easier review (2-42). They should be squashed together when
applying.
*Important:* Patchset is tested on my ARM platforms and *only* build
tested on allyesconfigs: ARM, ARM64, i386, x86_64 and powerpc.
Please kindly provide reviewes and tests
2015 Feb 11
9
[PATCH v2 0/6] nouveau/gk20a: RAM device removal & IOMMU support
Changes since v1:
- Add missing else condition in ltc
- Remove extra flags that slipped into nouveau_display.c and nv84_fence.c.
Original cover letter:
Patches 1-3 make the presence of a RAM device optional, and remove GK20A's dummy
RAM driver we were using so far. On chips using shared memory, such a device
can confuse the driver into moving objects where there is no need to, and can
trick
2015 Jan 23
8
[PATCH 0/6] nouveau/gk20a: RAM device removal & IOMMU support
A series I have waited too long to submit, and the recent refactoring made
me pay the price of my perfectionism, so here are the features that are at least
completed
Patches 1-3 make the presence of a RAM device optional, and remove GK20A's dummy
RAM driver we were using so far. On chips using shared memory, such a device
can confuse the driver into moving objects where there is no need to,
2016 Jun 02
0
[RFC v3 02/45] dma-mapping: Use unsigned long for dma_attrs
...for DMA attributes
- * @flags - bitmask representing a collection of enum dma_attr
- */
-struct dma_attrs {
- unsigned long flags[__DMA_ATTRS_LONGS];
-};
-
-#define DEFINE_DMA_ATTRS(x) \
- struct dma_attrs x = { \
- .flags = { [0 ... __DMA_ATTRS_LONGS-1] = 0 }, \
- }
-
-static inline void init_dma_attrs(struct dma_attrs *attrs)
-{
- bitmap_zero(attrs->flags, __DMA_ATTRS_LONGS);
-}
-
-/**
- * dma_set_attr - set a specific attribute
- * @attr: attribute to set
- * @attrs: struct dma_attrs (may be NULL)
- */
-static inline void dma_set_attr(enum dma_attr attr, struct dma_attrs *attrs)
-{
- if (att...
2016 Jun 02
52
[RFC v3 00/45] dma-mapping: Use unsigned long for dma_attrs
Hi,
This is third approach (complete this time) for replacing struct
dma_attrs with unsigned long.
The main patch (2/45) doing the change is split into many subpatches
for easier review (3-43). They should be squashed together when
applying.
*Important:* Patchset is *only* build tested on allyesconfigs: ARM,
ARM64, i386, x86_64 and powerpc. Please provide reviewes and tests
for other