[PATCH] drm/ttm: call driver move_notify() when doing system->tt bo moves

Thomas Hellström thomas at shipmail.org
Wed Feb 2 02:15:37 PST 2011


Reviewed-by: Thomas Hellstrom <thomas at shipmail.org>


Ben Skeggs wrote:
> From: Ben Skeggs <bskeggs at redhat.com>
>
> 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.
>
> Talked to Dave about the impact on radeon, which uses move_notify, it
> doesn't look like anything should break there.
>
> Signed-off-by: Ben Skeggs <bskeggs at 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
>
>




More information about the dri-devel mailing list