]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm/nouveau/nvif: remove device args
authorBen Skeggs <bskeggs@nvidia.com>
Fri, 26 Jul 2024 04:38:14 +0000 (14:38 +1000)
committerDanilo Krummrich <dakr@kernel.org>
Sat, 27 Jul 2024 01:05:35 +0000 (03:05 +0200)
These were once used by used by userspace tools (with nvkm built as a
library), to access multiple GPUs from a single nvif_client.

The DRM code just uses the driver's default device, so remove the
arguments.

Signed-off-by: Ben Skeggs <bskeggs@nvidia.com>
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240726043828.58966-24-bskeggs@nvidia.com
drivers/gpu/drm/nouveau/include/nvif/cl0080.h
drivers/gpu/drm/nouveau/include/nvif/device.h
drivers/gpu/drm/nouveau/nouveau_drm.c
drivers/gpu/drm/nouveau/nvif/device.c
drivers/gpu/drm/nouveau/nvkm/engine/device/user.c

index fa161b74d96774ff76b05707c77e662640b87849..ea937fa7bc55848a3cace49afbf669aeadddf707 100644 (file)
@@ -2,13 +2,6 @@
 #ifndef __NVIF_CL0080_H__
 #define __NVIF_CL0080_H__
 
-struct nv_device_v0 {
-       __u8  version;
-       __u8  priv;
-       __u8  pad02[6];
-       __u64 device;   /* device identifier, ~0 for client default */
-};
-
 #define NV_DEVICE_V0_INFO                                                  0x00
 #define NV_DEVICE_V0_TIME                                                  0x01
 
index b0e59800a3202523cb6b10cead809fbc44d1af71..f7c1b3a43c842212cf03f471aa04697d06d76e75 100644 (file)
@@ -18,8 +18,7 @@ struct nvif_device {
        struct nvif_user user;
 };
 
-int  nvif_device_ctor(struct nvif_object *, const char *name, u32 handle,
-                     s32 oclass, void *, u32, struct nvif_device *);
+int  nvif_device_ctor(struct nvif_client *, const char *name, struct nvif_device *);
 void nvif_device_dtor(struct nvif_device *);
 u64  nvif_device_time(struct nvif_device *);
 
index 8bcfc1f47a266e8ea7b933f241ac299c3e9ce9f8..22cdd987dd2fe680c38839e50938db5151f5de0c 100644 (file)
@@ -261,12 +261,7 @@ nouveau_cli_init(struct nouveau_drm *drm, const char *sname,
                goto done;
        }
 
-       ret = nvif_device_ctor(&cli->base.object, "drmDevice", 0, NV_DEVICE,
-                              &(struct nv_device_v0) {
-                                       .device = ~0,
-                                       .priv = true,
-                              }, sizeof(struct nv_device_v0),
-                              &cli->device);
+       ret = nvif_device_ctor(&cli->base, "drmDevice", &cli->device);
        if (ret) {
                NV_PRINTK(err, cli, "Device allocation failed: %d\n", ret);
                goto done;
index 8c3d883f331380d11173f64f3d6c8985ceb207d7..b14bccb9a93f8efe8423afc4903f33e10c462210 100644 (file)
@@ -21,8 +21,8 @@
  *
  * Authors: Ben Skeggs <bskeggs@redhat.com>
  */
-
 #include <nvif/device.h>
+#include <nvif/client.h>
 
 u64
 nvif_device_time(struct nvif_device *device)
@@ -48,11 +48,10 @@ nvif_device_dtor(struct nvif_device *device)
 }
 
 int
-nvif_device_ctor(struct nvif_object *parent, const char *name, u32 handle,
-                s32 oclass, void *data, u32 size, struct nvif_device *device)
+nvif_device_ctor(struct nvif_client *client, const char *name, struct nvif_device *device)
 {
-       int ret = nvif_object_ctor(parent, name ? name : "nvifDevice", handle,
-                                  oclass, data, size, &device->object);
+       int ret = nvif_object_ctor(&client->object, name ? name : "nvifDevice", 0,
+                                  0x0080, NULL, 0, &device->object);
        device->runlist = NULL;
        device->user.func = NULL;
        if (ret == 0) {
index d937c54e8dfa66ebf3b1a27156afbd0efa591533..65bd6712bce27f903f06a3546a9322daa8d8ff97 100644 (file)
@@ -357,7 +357,7 @@ nvkm_udevice_child_get(struct nvkm_object *object, int index,
 }
 
 static const struct nvkm_object_func
-nvkm_udevice_super = {
+nvkm_udevice = {
        .init = nvkm_udevice_init,
        .fini = nvkm_udevice_fini,
        .mthd = nvkm_udevice_mthd,
@@ -371,50 +371,20 @@ nvkm_udevice_super = {
        .sclass = nvkm_udevice_child_get,
 };
 
-static const struct nvkm_object_func
-nvkm_udevice = {
-       .init = nvkm_udevice_init,
-       .fini = nvkm_udevice_fini,
-       .mthd = nvkm_udevice_mthd,
-       .sclass = nvkm_udevice_child_get,
-};
-
 static int
 nvkm_udevice_new(const struct nvkm_oclass *oclass, void *data, u32 size,
                 struct nvkm_object **pobject)
 {
-       union {
-               struct nv_device_v0 v0;
-       } *args = data;
        struct nvkm_client *client = oclass->client;
-       struct nvkm_object *parent = &client->object;
-       const struct nvkm_object_func *func;
        struct nvkm_udevice *udev;
-       int ret = -ENOSYS;
-
-       nvif_ioctl(parent, "create device size %d\n", size);
-       if (!(ret = nvif_unpack(ret, &data, &size, args->v0, 0, 0, false))) {
-               nvif_ioctl(parent, "create device v%d device %016llx\n",
-                          args->v0.version, args->v0.device);
-       } else
-               return ret;
-
-       /* give priviledged clients register access */
-       if (args->v0.priv)
-               func = &nvkm_udevice_super;
-       else
-               func = &nvkm_udevice;
 
        if (!(udev = kzalloc(sizeof(*udev), GFP_KERNEL)))
                return -ENOMEM;
-       nvkm_object_ctor(func, oclass, &udev->object);
+       nvkm_object_ctor(&nvkm_udevice, oclass, &udev->object);
        *pobject = &udev->object;
 
        /* find the device that matches what the client requested */
-       if (args->v0.device != ~0)
-               udev->device = nvkm_device_find(args->v0.device);
-       else
-               udev->device = nvkm_device_find(client->device);
+       udev->device = nvkm_device_find(client->device);
        if (!udev->device)
                return -ENODEV;