<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 3, 2023 at 2:33 PM Dave Airlie <<a href="mailto:airlied@gmail.com">airlied@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">From: Dave Airlie <<a href="mailto:airlied@redhat.com" target="_blank">airlied@redhat.com</a>><br>
<br>
nouveau > 10 years ago had a plan for new multiplexer inside a multiplexer<br>
API using nvif. It never fully reached fruition, fast forward 10 years,<br>
and the new vulkan driver is avoiding libdrm and calling ioctls, and<br>
these 3 ioctls, getparam, channel alloc + free don't seem to be things<br>
we'd want to use nvif for.<br>
<br>
Undeprecate and put them into the uapi header so we can just copy it<br>
into mesa later.<br>
<br>
v2: use uapi types.<br>
<br>
Signed-off-by: Dave Airlie <<a href="mailto:airlied@redhat.com" target="_blank">airlied@redhat.com</a>><br></blockquote><div><br></div><div>Reviewed-by: Faith Ekstrand <<a href="mailto:faith.ekstrand@collabora.com">faith.ekstrand@collabora.com</a>><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
---<br>
 drivers/gpu/drm/nouveau/nouveau_abi16.h | 41 ---------------------<br>
 include/uapi/drm/nouveau_drm.h          | 48 +++++++++++++++++++++++--<br>
 2 files changed, 45 insertions(+), 44 deletions(-)<br>
<br>
diff --git a/drivers/gpu/drm/nouveau/nouveau_abi16.h b/drivers/gpu/drm/nouveau/nouveau_abi16.h<br>
index 27eae85f33e6..d5d80d0d9011 100644<br>
--- a/drivers/gpu/drm/nouveau/nouveau_abi16.h<br>
+++ b/drivers/gpu/drm/nouveau/nouveau_abi16.h<br>
@@ -43,28 +43,6 @@ int  nouveau_abi16_usif(struct drm_file *, void *data, u32 size);<br>
 #define NOUVEAU_GEM_DOMAIN_VRAM      (1 << 1)<br>
 #define NOUVEAU_GEM_DOMAIN_GART      (1 << 2)<br>
<br>
-struct drm_nouveau_channel_alloc {<br>
-       uint32_t     fb_ctxdma_handle;<br>
-       uint32_t     tt_ctxdma_handle;<br>
-<br>
-       int          channel;<br>
-       uint32_t     pushbuf_domains;<br>
-<br>
-       /* Notifier memory */<br>
-       uint32_t     notifier_handle;<br>
-<br>
-       /* DRM-enforced subchannel assignments */<br>
-       struct {<br>
-               uint32_t handle;<br>
-               uint32_t grclass;<br>
-       } subchan[8];<br>
-       uint32_t nr_subchan;<br>
-};<br>
-<br>
-struct drm_nouveau_channel_free {<br>
-       int channel;<br>
-};<br>
-<br>
 struct drm_nouveau_grobj_alloc {<br>
        int      channel;<br>
        uint32_t handle;<br>
@@ -83,31 +61,12 @@ struct drm_nouveau_gpuobj_free {<br>
        uint32_t handle;<br>
 };<br>
<br>
-#define NOUVEAU_GETPARAM_PCI_VENDOR      3<br>
-#define NOUVEAU_GETPARAM_PCI_DEVICE      4<br>
-#define NOUVEAU_GETPARAM_BUS_TYPE        5<br>
-#define NOUVEAU_GETPARAM_FB_SIZE         8<br>
-#define NOUVEAU_GETPARAM_AGP_SIZE        9<br>
-#define NOUVEAU_GETPARAM_CHIPSET_ID      11<br>
-#define NOUVEAU_GETPARAM_VM_VRAM_BASE    12<br>
-#define NOUVEAU_GETPARAM_GRAPH_UNITS     13<br>
-#define NOUVEAU_GETPARAM_PTIMER_TIME     14<br>
-#define NOUVEAU_GETPARAM_HAS_BO_USAGE    15<br>
-#define NOUVEAU_GETPARAM_HAS_PAGEFLIP    16<br>
-struct drm_nouveau_getparam {<br>
-       uint64_t param;<br>
-       uint64_t value;<br>
-};<br>
-<br>
 struct drm_nouveau_setparam {<br>
        uint64_t param;<br>
        uint64_t value;<br>
 };<br>
<br>
-#define DRM_IOCTL_NOUVEAU_GETPARAM           DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GETPARAM, struct drm_nouveau_getparam)<br>
 #define DRM_IOCTL_NOUVEAU_SETPARAM           DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_SETPARAM, struct drm_nouveau_setparam)<br>
-#define DRM_IOCTL_NOUVEAU_CHANNEL_ALLOC      DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_CHANNEL_ALLOC, struct drm_nouveau_channel_alloc)<br>
-#define DRM_IOCTL_NOUVEAU_CHANNEL_FREE       DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_CHANNEL_FREE, struct drm_nouveau_channel_free)<br>
 #define DRM_IOCTL_NOUVEAU_GROBJ_ALLOC        DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_GROBJ_ALLOC, struct drm_nouveau_grobj_alloc)<br>
 #define DRM_IOCTL_NOUVEAU_NOTIFIEROBJ_ALLOC  DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_NOTIFIEROBJ_ALLOC, struct drm_nouveau_notifierobj_alloc)<br>
 #define DRM_IOCTL_NOUVEAU_GPUOBJ_FREE        DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_GPUOBJ_FREE, struct drm_nouveau_gpuobj_free)<br>
diff --git a/include/uapi/drm/nouveau_drm.h b/include/uapi/drm/nouveau_drm.h<br>
index 853a327433d3..ca917e55b38f 100644<br>
--- a/include/uapi/drm/nouveau_drm.h<br>
+++ b/include/uapi/drm/nouveau_drm.h<br>
@@ -33,6 +33,44 @@<br>
 extern "C" {<br>
 #endif<br>
<br>
+#define NOUVEAU_GETPARAM_PCI_VENDOR      3<br>
+#define NOUVEAU_GETPARAM_PCI_DEVICE      4<br>
+#define NOUVEAU_GETPARAM_BUS_TYPE        5<br>
+#define NOUVEAU_GETPARAM_FB_SIZE         8<br>
+#define NOUVEAU_GETPARAM_AGP_SIZE        9<br>
+#define NOUVEAU_GETPARAM_CHIPSET_ID      11<br>
+#define NOUVEAU_GETPARAM_VM_VRAM_BASE    12<br>
+#define NOUVEAU_GETPARAM_GRAPH_UNITS     13<br>
+#define NOUVEAU_GETPARAM_PTIMER_TIME     14<br>
+#define NOUVEAU_GETPARAM_HAS_BO_USAGE    15<br>
+#define NOUVEAU_GETPARAM_HAS_PAGEFLIP    16<br>
+struct drm_nouveau_getparam {<br>
+       __u64 param;<br>
+       __u64 value;<br>
+};<br>
+<br>
+struct drm_nouveau_channel_alloc {<br>
+       __u32     fb_ctxdma_handle;<br>
+       __u32     tt_ctxdma_handle;<br>
+<br>
+       __s32     channel;<br>
+       __u32     pushbuf_domains;<br>
+<br>
+       /* Notifier memory */<br>
+       __u32     notifier_handle;<br>
+<br>
+       /* DRM-enforced subchannel assignments */<br>
+       struct {<br>
+               __u32 handle;<br>
+               __u32 grclass;<br>
+       } subchan[8];<br>
+       __u32 nr_subchan;<br>
+};<br>
+<br>
+struct drm_nouveau_channel_free {<br>
+       __s32 channel;<br>
+};<br>
+<br>
 #define NOUVEAU_GEM_DOMAIN_CPU       (1 << 0)<br>
 #define NOUVEAU_GEM_DOMAIN_VRAM      (1 << 1)<br>
 #define NOUVEAU_GEM_DOMAIN_GART      (1 << 2)<br>
@@ -126,10 +164,10 @@ struct drm_nouveau_gem_cpu_fini {<br>
        __u32 handle;<br>
 };<br>
<br>
-#define DRM_NOUVEAU_GETPARAM           0x00 /* deprecated */<br>
+#define DRM_NOUVEAU_GETPARAM           0x00<br>
 #define DRM_NOUVEAU_SETPARAM           0x01 /* deprecated */<br>
-#define DRM_NOUVEAU_CHANNEL_ALLOC      0x02 /* deprecated */<br>
-#define DRM_NOUVEAU_CHANNEL_FREE       0x03 /* deprecated */<br>
+#define DRM_NOUVEAU_CHANNEL_ALLOC      0x02<br>
+#define DRM_NOUVEAU_CHANNEL_FREE       0x03<br>
 #define DRM_NOUVEAU_GROBJ_ALLOC        0x04 /* deprecated */<br>
 #define DRM_NOUVEAU_NOTIFIEROBJ_ALLOC  0x05 /* deprecated */<br>
 #define DRM_NOUVEAU_GPUOBJ_FREE        0x06 /* deprecated */<br>
@@ -188,6 +226,10 @@ struct drm_nouveau_svm_bind {<br>
 #define NOUVEAU_SVM_BIND_TARGET__GPU_VRAM               (1UL << 31)<br>
<br>
<br>
+#define DRM_IOCTL_NOUVEAU_GETPARAM           DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_GETPARAM, struct drm_nouveau_getparam)<br>
+#define DRM_IOCTL_NOUVEAU_CHANNEL_ALLOC      DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_CHANNEL_ALLOC, struct drm_nouveau_channel_alloc)<br>
+#define DRM_IOCTL_NOUVEAU_CHANNEL_FREE       DRM_IOW (DRM_COMMAND_BASE + DRM_NOUVEAU_CHANNEL_FREE, struct drm_nouveau_channel_free)<br>
+<br>
 #define DRM_IOCTL_NOUVEAU_SVM_INIT           DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_SVM_INIT, struct drm_nouveau_svm_init)<br>
 #define DRM_IOCTL_NOUVEAU_SVM_BIND           DRM_IOWR(DRM_COMMAND_BASE + DRM_NOUVEAU_SVM_BIND, struct drm_nouveau_svm_bind)<br>
<br>
-- <br>
2.41.0<br>
<br>
</blockquote></div></div>