mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 06:01:57 +00:00
drm/nouveau/nvif: remove device args
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
This commit is contained in:
parent
246b228eb9
commit
fabc65d163
@ -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
|
||||
|
||||
|
@ -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 *);
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user