On 11/06/2012 10:49 PM, Marcin Slusarz wrote:
> All drivers pass NULL here. ttm_buffer_object's field can still be set after
> init, just like nouveau does.
>
> Signed-off-by: Marcin Slusarz <marcin.slusarz at gmail.com>
> Cc: Thomas Hellstrom <thellstrom at vmware.com>
> ---
>   drivers/gpu/drm/ast/ast_ttm.c            |  7 +++----
>   drivers/gpu/drm/cirrus/cirrus_ttm.c      |  2 +-
>   drivers/gpu/drm/mgag200/mgag200_ttm.c    |  2 +-
>   drivers/gpu/drm/nouveau/nouveau_bo.c     |  7 +++----
>   drivers/gpu/drm/radeon/radeon_object.c   |  6 +++---
>   drivers/gpu/drm/ttm/ttm_bo.c             |  7 ++-----
>   drivers/gpu/drm/vmwgfx/vmwgfx_drv.c      |  3 +--
>   drivers/gpu/drm/vmwgfx/vmwgfx_resource.c |  8 +++-----
>   include/drm/ttm/ttm_bo_api.h             | 16 +++-------------
>   9 files changed, 20 insertions(+), 38 deletions(-)
>
> diff --git a/drivers/gpu/drm/ast/ast_ttm.c b/drivers/gpu/drm/ast/ast_ttm.c
> index 0a54f65..c6dcc84 100644
> --- a/drivers/gpu/drm/ast/ast_ttm.c
> +++ b/drivers/gpu/drm/ast/ast_ttm.c
> @@ -354,10 +354,9 @@ int ast_bo_create(struct drm_device *dev, int size, int 
> align,
>       acc_size = ttm_bo_dma_acc_size(&ast->ttm.bdev, size,
>                                      sizeof(struct ast_bo));
>   
> -     ret = ttm_bo_init(&ast->ttm.bdev, &astbo->bo, size,
> -                       ttm_bo_type_device, &astbo->placement,
> -                       align >> PAGE_SHIFT, false, NULL, acc_size,
> -                       NULL, ast_bo_ttm_destroy);
> +     ret = ttm_bo_init(&ast->ttm.bdev, &astbo->bo, size, ttm_bo_type_device,
> +                       &astbo->placement, align >> PAGE_SHIFT, false,
> +                       acc_size, NULL, ast_bo_ttm_destroy);
>       if (ret)
>               return ret;
>   
> diff --git a/drivers/gpu/drm/cirrus/cirrus_ttm.c 
> b/drivers/gpu/drm/cirrus/cirrus_ttm.c
> index 90d7701..65e665f 100644
> --- a/drivers/gpu/drm/cirrus/cirrus_ttm.c
> +++ b/drivers/gpu/drm/cirrus/cirrus_ttm.c
> @@ -361,7 +361,7 @@ int cirrus_bo_create(struct drm_device *dev, int size, 
> int align,
>   
>       ret = ttm_bo_init(&cirrus->ttm.bdev, &cirrusbo->bo, size,
>                         ttm_bo_type_device, &cirrusbo->placement,
> -                       align >> PAGE_SHIFT, false, NULL, acc_size,
> +                       align >> PAGE_SHIFT, false, acc_size,
>                         NULL, cirrus_bo_ttm_destroy);
>       if (ret)
>               return ret;
> diff --git a/drivers/gpu/drm/mgag200/mgag200_ttm.c 
> b/drivers/gpu/drm/mgag200/mgag200_ttm.c
> index 49d60a6..be121d1 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_ttm.c
> +++ b/drivers/gpu/drm/mgag200/mgag200_ttm.c
> @@ -355,7 +355,7 @@ int mgag200_bo_create(struct drm_device *dev, int size, 
> int align,
>   
>       ret = ttm_bo_init(&mdev->ttm.bdev, &mgabo->bo, size,
>                         ttm_bo_type_device, &mgabo->placement,
> -                       align >> PAGE_SHIFT, false, NULL, acc_size,
> +                       align >> PAGE_SHIFT, false, acc_size,
>                         NULL, mgag200_bo_ttm_destroy);
>       if (ret)
>               return ret;
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c 
> b/drivers/gpu/drm/nouveau/nouveau_bo.c
> index 3cbf1a8..82f0f3c 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bo.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
> @@ -223,10 +223,9 @@ nouveau_bo_new(struct drm_device *dev, int size, int 
> align,
>       acc_size = ttm_bo_dma_acc_size(&drm->ttm.bdev, size,
>                                      sizeof(struct nouveau_bo));
>   
> -     ret = ttm_bo_init(&drm->ttm.bdev, &nvbo->bo, size,
> -                       type, &nvbo->placement,
> -                       align >> PAGE_SHIFT, false, NULL, acc_size, sg,
> -                       nouveau_bo_del_ttm);
> +     ret = ttm_bo_init(&drm->ttm.bdev, &nvbo->bo, size, type,
> +                       &nvbo->placement, align >> PAGE_SHIFT, false,
> +                       acc_size, sg, nouveau_bo_del_ttm);
>       if (ret) {
>               /* ttm will call nouveau_bo_del_ttm if it fails.. */
>               return ret;
> diff --git a/drivers/gpu/drm/radeon/radeon_object.c 
> b/drivers/gpu/drm/radeon/radeon_object.c
> index 0665845..834b291 100644
> --- a/drivers/gpu/drm/radeon/radeon_object.c
> +++ b/drivers/gpu/drm/radeon/radeon_object.c
> @@ -139,9 +139,9 @@ int radeon_bo_create(struct radeon_device *rdev,
>       radeon_ttm_placement_from_domain(bo, domain);
>       /* Kernel allocation are uninterruptible */
>       down_read(&rdev->pm.mclk_lock);
> -     r = ttm_bo_init(&rdev->mman.bdev, &bo->tbo, size, type,
> -                     &bo->placement, page_align, !kernel, NULL,
> -                     acc_size, sg, &radeon_ttm_bo_destroy);
> +     r = ttm_bo_init(&rdev->mman.bdev, &bo->tbo, size, type, &bo->placement,
> +                     page_align, !kernel, acc_size, sg,
> +                     &radeon_ttm_bo_destroy);
>       up_read(&rdev->pm.mclk_lock);
>       if (unlikely(r != 0)) {
>               return r;
> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
> index 27a2d3f..412486c 100644
> --- a/drivers/gpu/drm/ttm/ttm_bo.c
> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
> @@ -1180,7 +1180,6 @@ int ttm_bo_init(struct ttm_bo_device *bdev,
>               struct ttm_placement *placement,
>               uint32_t page_alignment,
>               bool interruptible,
> -             struct file *persistent_swap_storage,
>               size_t acc_size,
>               struct sg_table *sg,
>               void (*destroy) (struct ttm_buffer_object *))
> @@ -1234,7 +1233,7 @@ int ttm_bo_init(struct ttm_bo_device *bdev,
>       bo->priv_flags = 0;
>       bo->mem.placement = (TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED);
>       bo->seq_valid = false;
> -     bo->persistent_swap_storage = persistent_swap_storage;
> +     bo->persistent_swap_storage = NULL;
>       bo->acc_size = acc_size;
>       bo->sg = sg;
>       atomic_inc(&bo->glob->bo_count);
> @@ -1304,7 +1303,6 @@ int ttm_bo_create(struct ttm_bo_device *bdev,
>                       struct ttm_placement *placement,
>                       uint32_t page_alignment,
>                       bool interruptible,
> -                     struct file *persistent_swap_storage,
>                       struct ttm_buffer_object **p_bo)
>   {
>       struct ttm_buffer_object *bo;
> @@ -1317,8 +1315,7 @@ int ttm_bo_create(struct ttm_bo_device *bdev,
>   
>       acc_size = ttm_bo_acc_size(bdev, size, sizeof(struct 
> ttm_buffer_object));
>       ret = ttm_bo_init(bdev, bo, size, type, placement, page_alignment,
> -                       interruptible, persistent_swap_storage, acc_size,
> -                       NULL, NULL);
> +                       interruptible, acc_size, NULL, NULL);
>       if (likely(ret == 0))
>               *p_bo = bo;
>   
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c 
> b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> index 9f37b72..fcd9107 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
> @@ -292,8 +292,7 @@ static int vmw_dummy_query_bo_create(struct vmw_private 
> *dev_priv)
>                            PAGE_SIZE,
>                            ttm_bo_type_device,
>                            &vmw_vram_sys_placement,
> -                          0, false, NULL,
> -                          &dev_priv->dummy_query_bo);
> +                          0, false, &dev_priv->dummy_query_bo);
>   }
>   
>   
> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c 
> b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
> index be87124..4396fd8 100644
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
> @@ -955,7 +955,7 @@ int vmw_surface_evict(struct vmw_private *dev_priv,
>               ret = ttm_bo_create(&dev_priv->bdev, srf->backup_size,
>                                   ttm_bo_type_device,
>                                   &vmw_srf_placement, 0, true,
> -                                 NULL, &srf->backup);
> +                                 &srf->backup);
>               if (unlikely(ret != 0))
>                       return ret;
>       }
> @@ -1564,10 +1564,8 @@ int vmw_dmabuf_init(struct vmw_private *dev_priv,
>   
>       INIT_LIST_HEAD(&vmw_bo->validate_list);
>   
> -     ret = ttm_bo_init(bdev, &vmw_bo->base, size,
> -                       ttm_bo_type_device, placement,
> -                       0, interruptible,
> -                       NULL, acc_size, NULL, bo_free);
> +     ret = ttm_bo_init(bdev, &vmw_bo->base, size, ttm_bo_type_device,
> +                       placement, 0, interruptible, acc_size, NULL, bo_free);
>       return ret;
>   }
>   
> diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h
> index 9a71fda..641bd13 100644
> --- a/include/drm/ttm/ttm_bo_api.h
> +++ b/include/drm/ttm/ttm_bo_api.h
> @@ -157,7 +157,9 @@ struct ttm_tt;
>    * @mem: structure describing current placement.
>    * @persistent_swap_storage: Usually the swap storage is deleted for buffers
>    * pinned in physical memory. If this behaviour is not desired, this member
> - * holds a pointer to a persistent shmem object.
> + * holds a pointer to a persistent shmem object. Typically, this would
> + * point to the shmem object backing a GEM object if TTM is used to back a
> + * GEM user interface.
>    * @ttm: TTM structure holding system pages.
>    * @evicted: Whether the object was evicted without user-space knowing.
>    * @cpu_writes: For synchronization. Number of cpu writers.
> @@ -471,11 +473,6 @@ size_t ttm_bo_dma_acc_size(struct ttm_bo_device *bdev,
>    * @page_alignment: Data alignment in pages.
>    * @interruptible: If needing to sleep to wait for GPU resources,
>    * sleep interruptible.
> - * @persistent_swap_storage: Usually the swap storage is deleted for buffers
> - * pinned in physical memory. If this behaviour is not desired, this member
> - * holds a pointer to a persistent shmem object. Typically, this would
> - * point to the shmem object backing a GEM object if TTM is used to back a
> - * GEM user interface.
>    * @acc_size: Accounted size for this object.
>    * @destroy: Destroy function. Use NULL for kfree().
>    *
> @@ -501,7 +498,6 @@ extern int ttm_bo_init(struct ttm_bo_device *bdev,
>                       struct ttm_placement *placement,
>                       uint32_t page_alignment,
>                       bool interrubtible,
> -                     struct file *persistent_swap_storage,
>                       size_t acc_size,
>                       struct sg_table *sg,
>                       void (*destroy) (struct ttm_buffer_object *));
> @@ -517,11 +513,6 @@ extern int ttm_bo_init(struct ttm_bo_device *bdev,
>    * @page_alignment: Data alignment in pages.
>    * @interruptible: If needing to sleep while waiting for GPU resources,
>    * sleep interruptible.
> - * @persistent_swap_storage: Usually the swap storage is deleted for buffers
> - * pinned in physical memory. If this behaviour is not desired, this member
> - * holds a pointer to a persistent shmem object. Typically, this would
> - * point to the shmem object backing a GEM object if TTM is used to back a
> - * GEM user interface.
>    * @p_bo: On successful completion *p_bo points to the created object.
>    *
>    * This function allocates a ttm_buffer_object, and then calls ttm_bo_init
> @@ -538,7 +529,6 @@ extern int ttm_bo_create(struct ttm_bo_device *bdev,
>                               struct ttm_placement *placement,
>                               uint32_t page_alignment,
>                               bool interruptible,
> -                             struct file *persistent_swap_storage,
>                               struct ttm_buffer_object **p_bo);
>   
>   /**

I'm not convinced about this one. All gem-aware drivers could 
potentially use it, so we should instead figure out whether the
fact that they don't is an oversight.

/Thomas

Reply via email to