Re: [PATCH v3 09/37] drm/nouveau: remove abi16->device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]<

 



On Fri, 26 Jul 2024 14:38:00 +1000
Ben Skeggs <bskeggs@xxxxxxxxxx> wrote:

Reviewed-by: Zhi Wang <zhiw@xxxxxxxxxx>

> 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: Ben Skeggs <bskeggs@xxxxxxxxxx>
> ---
>  drivers/gpu/drm/nouveau/nouveau_abi16.c | 25
> +++---------------------- drivers/gpu/drm/nouveau/nouveau_abi16.h |
> 1 - 2 files changed, 3 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/gpu/drm/nouveau/nouveau_abi16.c
> b/drivers/gpu/drm/nouveau/nouveau_abi16.c index
> f2f5031d539f..a05131920052 100644 ---
> a/drivers/gpu/drm/nouveau/nouveau_abi16.c +++
> b/drivers/gpu/drm/nouveau/nouveau_abi16.c @@ -46,25 +46,9 @@
> nouveau_abi16(struct drm_file *file_priv) struct nouveau_abi16 *abi16;
>  		cli->abi16 = abi16 = kzalloc(sizeof(*abi16),
> GFP_KERNEL); if (cli->abi16) {
> -			struct nv_device_v0 args = {
> -				.device = ~0ULL,
> -			};
> -
>  			abi16->cli = cli;
>  			INIT_LIST_HEAD(&abi16->channels);
>  			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;
> @@ -241,9 +225,6 @@ nouveau_abi16_fini(struct nouveau_abi16 *abi16)
>  		nouveau_abi16_chan_fini(abi16, chan);
>  	}
>  
> -	/* destroy the device object */
> -	nvif_device_dtor(&abi16->device);
> -
>  	kfree(cli->abi16);
>  	cli->abi16 = NULL;
>  }
> @@ -360,7 +341,7 @@
> nouveau_abi16_ioctl_channel_alloc(ABI16_IOCTL_ARGS) struct
> nouveau_drm *drm = nouveau_drm(dev); struct nouveau_abi16 *abi16 =
> nouveau_abi16_get(file_priv); struct nouveau_abi16_chan *chan;
> -	struct nvif_device *device;
> +	struct nvif_device *device = &cli->device;
>  	u64 engine, runm;
>  	int ret;
>  
> @@ -377,7 +358,6 @@
> nouveau_abi16_ioctl_channel_alloc(ABI16_IOCTL_ARGS) */
>  	__nouveau_cli_disable_uvmm_noinit(cli);
>  
> -	device = &abi16->device;
>  	engine = NV_DEVICE_HOST_RUNLIST_ENGINES_GR;
>  
>  	/* hack to allow channel engine type specification on kepler
> */ @@ -643,13 +623,14 @@
> nouveau_abi16_ioctl_notifierobj_alloc(ABI16_IOCTL_ARGS) struct
> nouveau_abi16 *abi16 = nouveau_abi16_get(file_priv); struct
> nouveau_abi16_chan *chan; struct nouveau_abi16_ntfy *ntfy;
> -	struct nvif_device *device = &abi16->device;
> +	struct nvif_device *device;
>  	struct nvif_client *client;
>  	struct nv_dma_v0 args = {};
>  	int ret;
>  
>  	if (unlikely(!abi16))
>  		return -ENOMEM;
> +	device = &abi16->cli->device;
>  
>  	/* completely unnecessary for these chipsets... */
>  	if (unlikely(device->info.family >= NV_DEVICE_INFO_V0_FERMI))
> diff --git a/drivers/gpu/drm/nouveau/nouveau_abi16.h
> b/drivers/gpu/drm/nouveau/nouveau_abi16.h index
> 75a883a44e04..4743459ea14c 100644 ---
> a/drivers/gpu/drm/nouveau/nouveau_abi16.h +++
> b/drivers/gpu/drm/nouveau/nouveau_abi16.h @@ -31,7 +31,6 @@ struct
> nouveau_abi16_chan { 
>  struct nouveau_abi16 {
>  	struct nouveau_cli *cli;
> -	struct nvif_device device;
>  	struct list_head channels;
>  	u64 handles;
>  	struct list_head objects;




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux