40 lines
1.2 KiB
Diff
40 lines
1.2 KiB
Diff
From e40ec45d67d32ce900dd6f2242675979593db18c Mon Sep 17 00:00:00 2001
|
|
From: Ben Skeggs <bskeggs@redhat.com>
|
|
Date: Tue, 18 Jan 2011 11:04:03 +1000
|
|
Subject: [PATCH] drm/ttm: call driver move_notify() when doing system->tt bo moves
|
|
|
|
Nouveau doesn't have enough information at ttm_backend_func.bind() time
|
|
to implement things like tiled GART, or to keep a buffer at a constant
|
|
address in the GPU virtual address space no matter where in physical
|
|
memory it's placed.
|
|
|
|
To resolve this, nouveau will handle binding of all buffers to the GPU
|
|
itself from the move_notify() hook. This commit ensures it's called
|
|
for all buffer moves.
|
|
|
|
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
|
---
|
|
drivers/gpu/drm/ttm/ttm_bo.c | 3 ++-
|
|
1 files changed, 2 insertions(+), 1 deletions(-)
|
|
|
|
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
|
|
index af61fc2..0b6a55a 100644
|
|
--- a/drivers/gpu/drm/ttm/ttm_bo.c
|
|
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
|
|
@@ -406,11 +406,12 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
|
|
}
|
|
|
|
if (bo->mem.mem_type == TTM_PL_SYSTEM) {
|
|
+ if (bdev->driver->move_notify)
|
|
+ bdev->driver->move_notify(bo, mem);
|
|
bo->mem = *mem;
|
|
mem->mm_node = NULL;
|
|
goto moved;
|
|
}
|
|
-
|
|
}
|
|
|
|
if (bdev->driver->move_notify)
|
|
--
|
|
1.7.4.2
|
|
|