Commit d075d99e authored by Ben Skeggs's avatar Ben Skeggs Committed by Danilo Krummrich

drm/nouveau: remove abi16->device

The previous commit removes the last remnants of userspace's own nvif
instance, so this isn't needed anymore to hide the abi16 objects from
userspace and we can use nouveau_cli.device instead.
Signed-off-by: default avatarBen Skeggs <bskeggs@nvidia.com>
Signed-off-by: default avatarDanilo Krummrich <dakr@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240726043828.58966-10-bskeggs@nvidia.com
parent ba6b8479
...@@ -46,25 +46,9 @@ nouveau_abi16(struct drm_file *file_priv) ...@@ -46,25 +46,9 @@ nouveau_abi16(struct drm_file *file_priv)
struct nouveau_abi16 *abi16; struct nouveau_abi16 *abi16;
cli->abi16 = abi16 = kzalloc(sizeof(*abi16), GFP_KERNEL); cli->abi16 = abi16 = kzalloc(sizeof(*abi16), GFP_KERNEL);
if (cli->abi16) { if (cli->abi16) {
struct nv_device_v0 args = {
.device = ~0ULL,
};
abi16->cli = cli; abi16->cli = cli;
INIT_LIST_HEAD(&abi16->channels); INIT_LIST_HEAD(&abi16->channels);
INIT_LIST_HEAD(&abi16->objects); INIT_LIST_HEAD(&abi16->objects);
/* allocate device object targeting client's default
* device (ie. the one that belongs to the fd it
* opened)
*/
if (nvif_device_ctor(&cli->base.object, "abi16Device",
0, NV_DEVICE, &args, sizeof(args),
&abi16->device) == 0)
return cli->abi16;
kfree(cli->abi16);
cli->abi16 = NULL;
} }
} }
return cli->abi16; return cli->abi16;
...@@ -241,9 +225,6 @@ nouveau_abi16_fini(struct nouveau_abi16 *abi16) ...@@ -241,9 +225,6 @@ nouveau_abi16_fini(struct nouveau_abi16 *abi16)
nouveau_abi16_chan_fini(abi16, chan); nouveau_abi16_chan_fini(abi16, chan);
} }
/* destroy the device object */
nvif_device_dtor(&abi16->device);
kfree(cli->abi16); kfree(cli->abi16);
cli->abi16 = NULL; cli->abi16 = NULL;
} }
...@@ -360,7 +341,7 @@ nouveau_abi16_ioctl_channel_alloc(ABI16_IOCTL_ARGS) ...@@ -360,7 +341,7 @@ nouveau_abi16_ioctl_channel_alloc(ABI16_IOCTL_ARGS)
struct nouveau_drm *drm = nouveau_drm(dev); struct nouveau_drm *drm = nouveau_drm(dev);
struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv); struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv);
struct nouveau_abi16_chan *chan; struct nouveau_abi16_chan *chan;
struct nvif_device *device; struct nvif_device *device = &cli->device;
u64 engine, runm; u64 engine, runm;
int ret; int ret;
...@@ -377,7 +358,6 @@ nouveau_abi16_ioctl_channel_alloc(ABI16_IOCTL_ARGS) ...@@ -377,7 +358,6 @@ nouveau_abi16_ioctl_channel_alloc(ABI16_IOCTL_ARGS)
*/ */
__nouveau_cli_disable_uvmm_noinit(cli); __nouveau_cli_disable_uvmm_noinit(cli);
device = &abi16->device;
engine = NV_DEVICE_HOST_RUNLIST_ENGINES_GR; engine = NV_DEVICE_HOST_RUNLIST_ENGINES_GR;
/* hack to allow channel engine type specification on kepler */ /* hack to allow channel engine type specification on kepler */
...@@ -643,13 +623,14 @@ nouveau_abi16_ioctl_notifierobj_alloc(ABI16_IOCTL_ARGS) ...@@ -643,13 +623,14 @@ nouveau_abi16_ioctl_notifierobj_alloc(ABI16_IOCTL_ARGS)
struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv); struct nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv);
struct nouveau_abi16_chan *chan; struct nouveau_abi16_chan *chan;
struct nouveau_abi16_ntfy *ntfy; struct nouveau_abi16_ntfy *ntfy;
struct nvif_device *device = &abi16->device; struct nvif_device *device;
struct nvif_client *client; struct nvif_client *client;
struct nv_dma_v0 args = {}; struct nv_dma_v0 args = {};
int ret; int ret;
if (unlikely(!abi16)) if (unlikely(!abi16))
return -ENOMEM; return -ENOMEM;
device = &abi16->cli->device;
/* completely unnecessary for these chipsets... */ /* completely unnecessary for these chipsets... */
if (unlikely(device->info.family >= NV_DEVICE_INFO_V0_FERMI)) if (unlikely(device->info.family >= NV_DEVICE_INFO_V0_FERMI))
......
...@@ -31,7 +31,6 @@ struct nouveau_abi16_chan { ...@@ -31,7 +31,6 @@ struct nouveau_abi16_chan {
struct nouveau_abi16 { struct nouveau_abi16 {
struct nouveau_cli *cli; struct nouveau_cli *cli;
struct nvif_device device;
struct list_head channels; struct list_head channels;
u64 handles; u64 handles;
struct list_head objects; struct list_head objects;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment