OSDN Git Service

drm/nouveau: uapi: don't pass NO_PREFETCH flag implicitly
authorDanilo Krummrich <dakr@redhat.com>
Wed, 23 Aug 2023 18:15:34 +0000 (20:15 +0200)
committerDanilo Krummrich <dakr@redhat.com>
Thu, 24 Aug 2023 00:57:50 +0000 (02:57 +0200)
commit443f9e0b1ab5e3b95abf8606097d13e30e2f2413
tree1258191167c6b2528f2b4d63c105d0adbe209458
parentc6b9075cfbd624f2b33bd6fd388dc6f0b7027472
drm/nouveau: uapi: don't pass NO_PREFETCH flag implicitly

Currently, NO_PREFETCH is passed implicitly through
drm_nouveau_gem_pushbuf_push::length and drm_nouveau_exec_push::va_len.

Since this is a direct representation of how the HW is programmed it
isn't really future proof for a uAPI. Hence, fix this up for the new
uAPI and split up the va_len field of struct drm_nouveau_exec_push,
such that we keep 32bit for va_len and 32bit for flags.

For drm_nouveau_gem_pushbuf_push::length at least provide
NOUVEAU_GEM_PUSHBUF_NO_PREFETCH to indicate the bit shift.

While at it, fix up nv50_dma_push() as well, such that the caller
doesn't need to encode the NO_PREFETCH flag into the length parameter.

Signed-off-by: Danilo Krummrich <dakr@redhat.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230823181746.3446-1-dakr@redhat.com
drivers/gpu/drm/nouveau/nouveau_dma.c
drivers/gpu/drm/nouveau/nouveau_dma.h
drivers/gpu/drm/nouveau/nouveau_exec.c
drivers/gpu/drm/nouveau/nouveau_gem.c
include/uapi/drm/nouveau_drm.h