Displaying 20 results from an estimated 30 matches for "nouveau_ttm_tt_popul".
2020 Nov 20
1
[PATCH] drm/ttm: remove unused varibles
...ers/gpu/drm/nouveau/nouveau_bo.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 7aa4286..9465f56 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -1228,7 +1228,6 @@ nouveau_ttm_tt_populate(struct ttm_bo_device *bdev,
{
struct ttm_tt *ttm_dma = (void *)ttm;
struct nouveau_drm *drm;
- struct device *dev;
bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
if (ttm_tt_is_populated(ttm))
@@ -1242,7 +1241,6 @@ nouveau_ttm_tt_populate(struct ttm_bo_device *bdev,
}...
2014 Jul 31
2
[PATCH v5] drm/nouveau: map pages using DMA API
...------
nvkm/subdev/fb/nv50.c | 7 +++++--
nvkm/subdev/fb/nvc0.c | 7 +++++--
6 files changed, 30 insertions(+), 45 deletions(-)
diff --git a/drm/nouveau_bo.c b/drm/nouveau_bo.c
index 4db886f9f793..e4f2071c46c3 100644
--- a/drm/nouveau_bo.c
+++ b/drm/nouveau_bo.c
@@ -1340,6 +1340,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm)
struct nouveau_drm *drm;
struct nouveau_device *device;
struct drm_device *dev;
+ struct device *pdev;
unsigned i;
int r;
bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
@@ -1358,6 +1359,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm)
drm = nouveau_...
2014 Aug 04
0
[PATCH v5] drm/nouveau: map pages using DMA API
...+++++--
> nvkm/subdev/fb/nvc0.c | 7 +++++--
> 6 files changed, 30 insertions(+), 45 deletions(-)
>
> diff --git a/drm/nouveau_bo.c b/drm/nouveau_bo.c
> index 4db886f9f793..e4f2071c46c3 100644
> --- a/drm/nouveau_bo.c
> +++ b/drm/nouveau_bo.c
> @@ -1340,6 +1340,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm)
> struct nouveau_drm *drm;
> struct nouveau_device *device;
> struct drm_device *dev;
> + struct device *pdev;
> unsigned i;
> int r;
> bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
> @@ -1358,6 +1359,7 @@ nouveau_ttm_tt_popul...
2017 Aug 18
0
[PATCH] drm/nouveau: use new TTM populate/DMA map function
...-----------
1 file changed, 2 insertions(+), 35 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index e427f80344c4..6ad0ad53047a 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -1448,8 +1448,6 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm)
struct nvkm_device *device;
struct drm_device *dev;
struct device *pdev;
- unsigned i;
- int r;
bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
if (ttm->state != tt_unpopulated)
@@ -1480,30 +1478,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm)
}...
2020 Nov 02
0
[PATCH -next] drm/nouveu: remove unused variable
...s/gpu/drm/nouveau/nouveau_bo.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
index 8133377..96f00b5 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bo.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
@@ -1310,7 +1310,6 @@ nouveau_ttm_tt_populate(struct ttm_bo_device *bdev,
{
struct ttm_tt *ttm_dma = (void *)ttm;
struct nouveau_drm *drm;
- struct device *dev;
bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
if (ttm_tt_is_populated(ttm))
@@ -1324,7 +1323,6 @@ nouveau_ttm_tt_populate(struct ttm_bo_device *bdev,
}...
2020 Nov 19
0
[PATCH] drm/ttm: remove unused varibles
...2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
> index 7aa4286..9465f56 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
> @@ -1228,7 +1228,6 @@ nouveau_ttm_tt_populate(struct ttm_bo_device *bdev,
> {
> struct ttm_tt *ttm_dma = (void *)ttm;
> struct nouveau_drm *drm;
> - struct device *dev;
> bool slave = !!(ttm->page_flags & TTM_PAGE_FLAG_SG);
>
> if (ttm_tt_is_populated(ttm))
> @@ -1242,7 +1241,6 @@ nouveau_ttm_...
2014 Oct 27
4
[PATCH v5 0/4] drm: nouveau: memory coherency on ARM
...ns I believe this
code looks rather good now. I also have extensively tested it and could
not see any buffer corruption issue anymore. There is still one point
which is not completely satisfying in my opinion:
TTMs for TTM-backed objects are allocated in nouveau_sgdma_create_ttm()
and populated in nouveau_ttm_tt_populate(). Coherently-allocated buffers
need to use the ttm_dma API instead of the pool-based TTM API, and whether
an object is coherent or not is stored in its instance of nouveau_bo.
The problem is that neither nouveau_sgdma_create_ttm() nor
nouveau_ttm_tt_populate() have a way to access the nouveau_...
2013 Jul 12
2
[PATCH] drm/nouveau: kill nouveau_ttm_fault_reserve_notify handler to prevent useless buffer moves
...ure bo is in mappable vram */
- if (bo->mem.start + bo->mem.num_pages < mappable)
- return 0;
-
-
- nvbo->placement.fpfn = 0;
- nvbo->placement.lpfn = mappable;
- nouveau_bo_placement_set(nvbo, TTM_PL_FLAG_VRAM, 0);
- return nouveau_bo_validate(nvbo, false, false);
-}
-
-static int
nouveau_ttm_tt_populate(struct ttm_tt *ttm)
{
struct ttm_dma_tt *ttm_dma = (void *)ttm;
@@ -1524,7 +1496,6 @@ struct ttm_bo_driver nouveau_bo_driver = {
.sync_obj_flush = nouveau_bo_fence_flush,
.sync_obj_unref = nouveau_bo_fence_unref,
.sync_obj_ref = nouveau_bo_fence_ref,
- .fault_reserve_notify = &nouve...
2014 Feb 01
0
[RFC 02/16] drm/nouveau: basic support for platform devices
...ice *device = nv_device(drm->device);
- u32 mappable = pci_resource_len(device->pdev, 1) >> PAGE_SHIFT;
+ u32 mappable = nv_device_resource_len(device, 1) >> PAGE_SHIFT;
int ret;
/* as long as the bo isn't in vram, and isn't tiled, we've got
@@ -1331,6 +1331,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm)
{
struct ttm_dma_tt *ttm_dma = (void *)ttm;
struct nouveau_drm *drm;
+ struct nouveau_device *device;
struct drm_device *dev;
unsigned i;
int r;
@@ -1348,6 +1349,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm)
}
drm = nouveau_bdev(ttm->bdev);
+ device = n...
2016 Mar 02
0
[PATCH] bo: consider DMA buffers on x86 only
...where absolutely needed?
drm/nouveau/nouveau_bo.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drm/nouveau/nouveau_bo.c b/drm/nouveau/nouveau_bo.c
index e3acc35e3805..2cdaea58678d 100644
--- a/drm/nouveau/nouveau_bo.c
+++ b/drm/nouveau/nouveau_bo.c
@@ -1502,7 +1502,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm)
}
#endif
-#ifdef CONFIG_SWIOTLB
+#if IS_ENABLED(CONFIG_SWIOTLB) && IS_ENABLED(CONFIG_X86)
if (swiotlb_nr_tbl()) {
return ttm_dma_populate((void *)ttm, dev->dev);
}
@@ -1570,7 +1570,7 @@ nouveau_ttm_tt_unpopulate(struct ttm_tt *ttm)
}
#endif
-#ifdef...
2013 Jul 15
0
[PATCH] drm/nouveau: kill nouveau_ttm_fault_reserve_notify handler to prevent useless buffer moves
...gt; - return 0;
> -
> -
> - nvbo->placement.fpfn = 0;
> - nvbo->placement.lpfn = mappable;
> - nouveau_bo_placement_set(nvbo, TTM_PL_FLAG_VRAM, 0);
> - return nouveau_bo_validate(nvbo, false, false);
> -}
> -
> -static int
> nouveau_ttm_tt_populate(struct ttm_tt *ttm)
> {
> struct ttm_dma_tt *ttm_dma = (void *)ttm;
> @@ -1524,7 +1496,6 @@ struct ttm_bo_driver nouveau_bo_driver = {
> .sync_obj_flush = nouveau_bo_fence_flush,
> .sync_obj_unref = nouveau_bo_fence_unref,
> .sync_obj_ref = nouv...
2014 Nov 17
0
kworker/u16:57: page allocation failure: order:0, mode:0x284000
...gt;] radix_tree_node_alloc+0x22/0x90
[<c0755e7c>] __radix_tree_create+0x6c/0x1c0
[<c0756009>] radix_tree_insert+0x39/0xe0
[<c077ae59>] add_dma_entry+0x89/0x150
[<c04121b0>] ? save_stack_trace+0x30/0x50
[<c077b21d>] debug_dma_map_page+0xfd/0x130
[<f83e3578>] nouveau_ttm_tt_populate+0x118/0x230 [nouveau]
[<f817de4e>] ttm_tt_bind+0x2e/0x60 [ttm]
[<f818016a>] ttm_bo_handle_move_mem+0x4ca/0x560 [ttm]
[<f81807fd>] ? ttm_bo_mem_space+0x14d/0x310 [ttm]
[<f817eed3>] ? ttm_bo_wait+0x113/0x250 [ttm]
[<f81804a3>] ttm_mem_evict_first+0x2a3/0x4b0 [ttm...
2020 May 13
1
[PATCH 2/2] drm/ttm: deprecate AGP support
...em memory */
> return 0;
> case TTM_PL_TT:
> -#if IS_ENABLED(CONFIG_AGP)
> +#if IS_ENABLED(CONFIG_DRM_TTM_AGP)
> if (drm->agp.bridge) {
> reg->bus.offset = reg->start << PAGE_SHIFT;
> reg->bus.base = drm->agp.base;
> @@ -1603,7 +1603,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm, struct ttm_operation_ctx *ctx)
> drm = nouveau_bdev(ttm->bdev);
> dev = drm->dev->dev;
>
> -#if IS_ENABLED(CONFIG_AGP)
> +#if IS_ENABLED(CONFIG_DRM_TTM_AGP)
> if (drm->agp.bridge) {
> return ttm_agp_tt_populate(ttm, ctx);
> }
&...
2020 May 13
0
[PATCH 2/2] drm/ttm: deprecate AGP support
...dev, struct ttm_mem_reg *reg)
/* System memory */
return 0;
case TTM_PL_TT:
-#if IS_ENABLED(CONFIG_AGP)
+#if IS_ENABLED(CONFIG_DRM_TTM_AGP)
if (drm->agp.bridge) {
reg->bus.offset = reg->start << PAGE_SHIFT;
reg->bus.base = drm->agp.base;
@@ -1603,7 +1603,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm, struct ttm_operation_ctx *ctx)
drm = nouveau_bdev(ttm->bdev);
dev = drm->dev->dev;
-#if IS_ENABLED(CONFIG_AGP)
+#if IS_ENABLED(CONFIG_DRM_TTM_AGP)
if (drm->agp.bridge) {
return ttm_agp_tt_populate(ttm, ctx);
}
@@ -1656,7 +1656,7 @@ nouveau_ttm_tt_unpo...
2016 Jul 13
1
[PATCH 1/2] ttm: remove special handling of coherent objects
...(struct nouveau_bo *nvbo, unsigned index, u32 val)
bool is_iomem;
u32 *mem = ttm_kmap_obj_virtual(&nvbo->kmap, &is_iomem);
- mem = nouveau_bo_mem_index(nvbo, index, mem);
+ mem += index;
if (is_iomem)
iowrite32_native(val, (void __force __iomem *)mem);
@@ -1492,14 +1459,6 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm)
dev = drm->dev;
pdev = device->dev;
- /*
- * Objects matching this condition have been marked as force_coherent,
- * so use the DMA API for them.
- */
- if (!nvxx_device(&drm->device)->func->cpu_coherent &&
- ttm->caching_state == tt...
2014 Feb 12
0
[PATCH v2] drm/nouveau: support for platform devices
...ice *device = nv_device(drm->device);
- u32 mappable = pci_resource_len(device->pdev, 1) >> PAGE_SHIFT;
+ u32 mappable = nv_device_resource_len(device, 1) >> PAGE_SHIFT;
int ret;
/* as long as the bo isn't in vram, and isn't tiled, we've got
@@ -1331,6 +1331,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm)
{
struct ttm_dma_tt *ttm_dma = (void *)ttm;
struct nouveau_drm *drm;
+ struct nouveau_device *device;
struct drm_device *dev;
unsigned i;
int r;
@@ -1348,6 +1349,7 @@ nouveau_ttm_tt_populate(struct ttm_tt *ttm)
}
drm = nouveau_bdev(ttm->bdev);
+ device = n...
2020 May 13
8
[RFC] Deprecate AGP GART support for Radeon/Nouveau/TTM
Unfortunately AGP is still to widely used as we could just drop support for using its GART.
Not using the AGP GART also doesn't mean a loss in functionality since drivers will just fallback to the driver specific PCI GART.
For now just deprecate the code and don't enable the AGP GART in TTM even when general AGP support is available.
Please comment,
Christian.
2014 Jun 27
3
[PATCH v3 0/2] drm: nouveau: memory coherency for ARM
v2 was doing some pretty nasty things with the DMA API, so I took a different
approach for this v3.
As suggested, this version uses ttm_dma_populate() to populate BOs. The reason
for doing this was that it would entitle us to using the DMA sync functions,
but since the memory returned is already coherent anyway, we do not even
need to call these functions anymore.
So this series has turned into
2014 Feb 12
2
[PATCH v2] drm/nouveau: support for platform devices
On 12/02/14 05:38, Alexandre Courbot wrote:
> Upcoming mobile Kepler GPUs (such as GK20A) use the platform bus instead
> of PCI to which Nouveau is tightly dependent. This patch allows Nouveau
> to handle platform devices by:
>
> - abstracting PCI-dependent functions that were typically used for
> resource querying and page mapping,
> - introducing a nv_device_is_pci()
2014 Feb 11
2
[PATCH] drm/nouveau: support for platform devices
On Mon, Feb 10, 2014 at 8:50 PM, Thierry Reding
<thierry.reding at gmail.com> wrote:
> On Mon, Feb 10, 2014 at 02:53:00PM +0900, Alexandre Courbot wrote:
> [...]
>> diff --git a/drivers/gpu/drm/nouveau/core/engine/device/base.c b/drivers/gpu/drm/nouveau/core/engine/device/base.c
> [...]
>> +resource_size_t
>> +nv_device_resource_start(struct nouveau_device *device,