Re: [PATCH v3 29/37] drm/nouveau: pass drm to nouveau_mem_new(), instead of cli

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

 



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

LGTM.

Reviewed-by: Zhi Wang <zhiw@xxxxxxxxxx>

> The nouveau_cli pointer is only ever used to eventually access
> nouveau_drm, so just store it directly.
> 
> Signed-off-by: Ben Skeggs <bskeggs@xxxxxxxxxx>
> ---
>  drivers/gpu/drm/nouveau/nouveau_mem.c   | 18 ++++++++----------
>  drivers/gpu/drm/nouveau/nouveau_mem.h   |  4 ++--
>  drivers/gpu/drm/nouveau/nouveau_sgdma.c |  2 +-
>  drivers/gpu/drm/nouveau/nouveau_ttm.c   |  8 ++++----
>  4 files changed, 15 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.c
> b/drivers/gpu/drm/nouveau/nouveau_mem.c index
> 67f93cf753ba..b112b62dca3c 100644 ---
> a/drivers/gpu/drm/nouveau/nouveau_mem.c +++
> b/drivers/gpu/drm/nouveau/nouveau_mem.c @@ -78,19 +78,18 @@
> nouveau_mem_map(struct nouveau_mem *mem, void
>  nouveau_mem_fini(struct nouveau_mem *mem)
>  {
> -	nvif_vmm_put(&mem->cli->drm->client.vmm.vmm, &mem->vma[1]);
> -	nvif_vmm_put(&mem->cli->drm->client.vmm.vmm, &mem->vma[0]);
> -	mutex_lock(&mem->cli->drm->master.lock);
> +	nvif_vmm_put(&mem->drm->client.vmm.vmm, &mem->vma[1]);
> +	nvif_vmm_put(&mem->drm->client.vmm.vmm, &mem->vma[0]);
> +	mutex_lock(&mem->drm->master.lock);
>  	nvif_mem_dtor(&mem->mem);
> -	mutex_unlock(&mem->cli->drm->master.lock);
> +	mutex_unlock(&mem->drm->master.lock);
>  }
>  
>  int
>  nouveau_mem_host(struct ttm_resource *reg, struct ttm_tt *tt)
>  {
>  	struct nouveau_mem *mem = nouveau_mem(reg);
> -	struct nouveau_cli *cli = mem->cli;
> -	struct nouveau_drm *drm = cli->drm;
> +	struct nouveau_drm *drm = mem->drm;
>  	struct nvif_mmu *mmu = &drm->mmu;
>  	struct nvif_mem_ram_v0 args = {};
>  	u8 type;
> @@ -126,8 +125,7 @@ int
>  nouveau_mem_vram(struct ttm_resource *reg, bool contig, u8 page)
>  {
>  	struct nouveau_mem *mem = nouveau_mem(reg);
> -	struct nouveau_cli *cli = mem->cli;
> -	struct nouveau_drm *drm = cli->drm;
> +	struct nouveau_drm *drm = mem->drm;
>  	struct nvif_mmu *mmu = &drm->mmu;
>  	u64 size = ALIGN(reg->size, 1 << page);
>  	int ret;
> @@ -173,7 +171,7 @@ nouveau_mem_del(struct ttm_resource_manager *man,
> struct ttm_resource *reg) }
>  
>  int
> -nouveau_mem_new(struct nouveau_cli *cli, u8 kind, u8 comp,
> +nouveau_mem_new(struct nouveau_drm *drm, u8 kind, u8 comp,
>  		struct ttm_resource **res)
>  {
>  	struct nouveau_mem *mem;
> @@ -181,7 +179,7 @@ nouveau_mem_new(struct nouveau_cli *cli, u8 kind,
> u8 comp, if (!(mem = kzalloc(sizeof(*mem), GFP_KERNEL)))
>  		return -ENOMEM;
>  
> -	mem->cli = cli;
> +	mem->drm = drm;
>  	mem->kind = kind;
>  	mem->comp = comp;
>  
> diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.h
> b/drivers/gpu/drm/nouveau/nouveau_mem.h index
> 5365a3d3a17f..a070ee049f6b 100644 ---
> a/drivers/gpu/drm/nouveau/nouveau_mem.h +++
> b/drivers/gpu/drm/nouveau/nouveau_mem.h @@ -8,7 +8,7 @@ struct ttm_tt;
>  
>  struct nouveau_mem {
>  	struct ttm_resource base;
> -	struct nouveau_cli *cli;
> +	struct nouveau_drm *drm;
>  	u8 kind;
>  	u8 comp;
>  	struct nvif_mem mem;
> @@ -21,7 +21,7 @@ nouveau_mem(struct ttm_resource *reg)
>  	return container_of(reg, struct nouveau_mem, base);
>  }
>  
> -int nouveau_mem_new(struct nouveau_cli *, u8 kind, u8 comp,
> +int nouveau_mem_new(struct nouveau_drm *, u8 kind, u8 comp,
>  		    struct ttm_resource **);
>  void nouveau_mem_del(struct ttm_resource_manager *man,
>  		     struct ttm_resource *);
> diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c
> b/drivers/gpu/drm/nouveau/nouveau_sgdma.c index
> b14895f75b3c..bd870028514b 100644 ---
> a/drivers/gpu/drm/nouveau/nouveau_sgdma.c +++
> b/drivers/gpu/drm/nouveau/nouveau_sgdma.c @@ -43,7 +43,7 @@
> nouveau_sgdma_bind(struct ttm_device *bdev, struct ttm_tt *ttm,
> struct ttm_resou return ret; 
>  	if (drm->client.device.info.family <
> NV_DEVICE_INFO_V0_TESLA) {
> -		ret = nouveau_mem_map(mem, &mem->cli->vmm.vmm,
> &mem->vma[0]);
> +		ret = nouveau_mem_map(mem, &drm->client.vmm.vmm,
> &mem->vma[0]); if (ret) {
>  			nouveau_mem_fini(mem);
>  			return ret;
> diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c
> b/drivers/gpu/drm/nouveau/nouveau_ttm.c index
> 53553819bcac..e244927eb5d4 100644 ---
> a/drivers/gpu/drm/nouveau/nouveau_ttm.c +++
> b/drivers/gpu/drm/nouveau/nouveau_ttm.c @@ -73,7 +73,7 @@
> nouveau_vram_manager_new(struct ttm_resource_manager *man, if
> (drm->client.device.info.ram_size == 0) return -ENOMEM;
>  
> -	ret = nouveau_mem_new(&drm->master, nvbo->kind, nvbo->comp,
> res);
> +	ret = nouveau_mem_new(drm, nvbo->kind, nvbo->comp, res);
>  	if (ret)
>  		return ret;
>  
> @@ -105,7 +105,7 @@ nouveau_gart_manager_new(struct
> ttm_resource_manager *man, struct nouveau_drm *drm =
> nouveau_bdev(bo->bdev); int ret;
>  
> -	ret = nouveau_mem_new(&drm->master, nvbo->kind, nvbo->comp,
> res);
> +	ret = nouveau_mem_new(drm, nvbo->kind, nvbo->comp, res);
>  	if (ret)
>  		return ret;
>  
> @@ -132,13 +132,13 @@ nv04_gart_manager_new(struct
> ttm_resource_manager *man, struct nouveau_mem *mem;
>  	int ret;
>  
> -	ret = nouveau_mem_new(&drm->master, nvbo->kind, nvbo->comp,
> res);
> +	ret = nouveau_mem_new(drm, nvbo->kind, nvbo->comp, res);
>  	if (ret)
>  		return ret;
>  
>  	mem = nouveau_mem(*res);
>  	ttm_resource_init(bo, place, *res);
> -	ret = nvif_vmm_get(&mem->cli->vmm.vmm, PTES, false, 12, 0,
> +	ret = nvif_vmm_get(&drm->client.vmm.vmm, PTES, false, 12, 0,
>  			   (long)(*res)->size, &mem->vma[0]);
>  	if (ret) {
>  		nouveau_mem_del(man, *res);




[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