diff options
author | Danilo Krummrich <dakr@redhat.com> | 2023-08-23 21:15:34 +0300 |
---|---|---|
committer | Danilo Krummrich <dakr@redhat.com> | 2023-08-24 03:57:50 +0300 |
commit | 443f9e0b1ab5e3b95abf8606097d13e30e2f2413 (patch) | |
tree | 1258191167c6b2528f2b4d63c105d0adbe209458 /include/uapi/drm/nouveau_drm.h | |
parent | c6b9075cfbd624f2b33bd6fd388dc6f0b7027472 (diff) | |
download | linux-443f9e0b1ab5e3b95abf8606097d13e30e2f2413.tar.xz |
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
Diffstat (limited to 'include/uapi/drm/nouveau_drm.h')
-rw-r--r-- | include/uapi/drm/nouveau_drm.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/include/uapi/drm/nouveau_drm.h b/include/uapi/drm/nouveau_drm.h index b1ad9d5ffce8..8d7402c13e56 100644 --- a/include/uapi/drm/nouveau_drm.h +++ b/include/uapi/drm/nouveau_drm.h @@ -138,6 +138,7 @@ struct drm_nouveau_gem_pushbuf_push { __u32 pad; __u64 offset; __u64 length; +#define NOUVEAU_GEM_PUSHBUF_NO_PREFETCH (1 << 23) }; struct drm_nouveau_gem_pushbuf { @@ -338,7 +339,12 @@ struct drm_nouveau_exec_push { /** * @va_len: the length of the push buffer mapping */ - __u64 va_len; + __u32 va_len; + /** + * @flags: the flags for this push buffer mapping + */ + __u32 flags; +#define DRM_NOUVEAU_EXEC_PUSH_NO_PREFETCH 0x1 }; /** |