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