summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDanilo Krummrich <dakr@redhat.com>2023-08-23 20:15:34 +0200
committerDanilo Krummrich <dakr@redhat.com>2023-08-24 02:57:50 +0200
commit443f9e0b1ab5e3b95abf8606097d13e30e2f2413 (patch)
tree1258191167c6b2528f2b4d63c105d0adbe209458 /include
parentc6b9075cfbd624f2b33bd6fd388dc6f0b7027472 (diff)
downloadlinux-stable-443f9e0b1ab5e3b95abf8606097d13e30e2f2413.tar.gz
linux-stable-443f9e0b1ab5e3b95abf8606097d13e30e2f2413.tar.bz2
linux-stable-443f9e0b1ab5e3b95abf8606097d13e30e2f2413.zip
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')
-rw-r--r--include/uapi/drm/nouveau_drm.h8
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
};
/**