2015-04-02 17:30 GMT+02:00 Lucas Stach <l.stach@xxxxxxxxxxxxxx>: > Dumb buffers must be only used as backing storage for scanout > only surfaces. Any acceleration operation on them is not allowed. > > So there is no point in having dumb buffer support in a driver > that isn't able to drive any scanout hardware. > > Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx> > --- > drivers/staging/etnaviv/etnaviv_drv.c | 3 --- > drivers/staging/etnaviv/etnaviv_drv.h | 12 ------------ > drivers/staging/etnaviv/etnaviv_gem.c | 31 ------------------------------- > 3 files changed, 46 deletions(-) > > diff --git a/drivers/staging/etnaviv/etnaviv_drv.c b/drivers/staging/etnaviv/etnaviv_drv.c > index 799793ea0b38..d01af1290bb2 100644 > --- a/drivers/staging/etnaviv/etnaviv_drv.c > +++ b/drivers/staging/etnaviv/etnaviv_drv.c > @@ -536,9 +536,6 @@ static struct drm_driver etnaviv_drm_driver = { > .set_busid = drm_platform_set_busid, > .gem_free_object = etnaviv_gem_free_object, > .gem_vm_ops = &vm_ops, > - .dumb_create = msm_gem_dumb_create, > - .dumb_map_offset = msm_gem_dumb_map_offset, > - .dumb_destroy = drm_gem_dumb_destroy, > .prime_handle_to_fd = drm_gem_prime_handle_to_fd, > .prime_fd_to_handle = drm_gem_prime_fd_to_handle, > .gem_prime_export = drm_gem_prime_export, > diff --git a/drivers/staging/etnaviv/etnaviv_drv.h b/drivers/staging/etnaviv/etnaviv_drv.h > index 4dfcd03c80ef..8d835a5e2e2a 100644 > --- a/drivers/staging/etnaviv/etnaviv_drv.h > +++ b/drivers/staging/etnaviv/etnaviv_drv.h > @@ -80,10 +80,6 @@ int etnaviv_gem_get_iova_locked(struct etnaviv_gpu *gpu, > int etnaviv_gem_get_iova(struct etnaviv_gpu *gpu, struct drm_gem_object *obj, > int id, uint32_t *iova); > void etnaviv_gem_put_iova(struct drm_gem_object *obj); > -int msm_gem_dumb_create(struct drm_file *file, struct drm_device *dev, > - struct drm_mode_create_dumb *args); > -int msm_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev, > - uint32_t handle, uint64_t *offset); > struct sg_table *msm_gem_prime_get_sg_table(struct drm_gem_object *obj); > void *msm_gem_prime_vmap(struct drm_gem_object *obj); > void msm_gem_prime_vunmap(struct drm_gem_object *obj, void *vaddr); > @@ -146,12 +142,4 @@ static inline bool fence_completed(struct drm_device *dev, uint32_t fence) > return fence_after_eq(priv->completed_fence, fence); > } > > -static inline int align_pitch(int width, int bpp) > -{ > - int bytespp = (bpp + 7) / 8; > - > - /* adreno needs pitch aligned to 32 pixels: */ > - return bytespp * ALIGN(width, 32); > -} > - > #endif /* __ETNAVIV_DRV_H__ */ > diff --git a/drivers/staging/etnaviv/etnaviv_gem.c b/drivers/staging/etnaviv/etnaviv_gem.c > index 04594dad27e2..e396ee90bc5e 100644 > --- a/drivers/staging/etnaviv/etnaviv_gem.c > +++ b/drivers/staging/etnaviv/etnaviv_gem.c > @@ -368,37 +368,6 @@ void etnaviv_gem_put_iova(struct drm_gem_object *obj) > */ > } > > -int msm_gem_dumb_create(struct drm_file *file, struct drm_device *dev, > - struct drm_mode_create_dumb *args) > -{ > - args->pitch = align_pitch(args->width, args->bpp); > - args->size = PAGE_ALIGN(args->pitch * args->height); > - /* TODO: re-check flags */ > - return etnaviv_gem_new_handle(dev, file, args->size, > - ETNA_BO_WC, &args->handle); > -} > - > -int msm_gem_dumb_map_offset(struct drm_file *file, struct drm_device *dev, > - uint32_t handle, uint64_t *offset) > -{ > - struct drm_gem_object *obj; > - int ret = 0; > - > - /* GEM does all our handle to object mapping */ > - obj = drm_gem_object_lookup(dev, file, handle); > - if (obj == NULL) { > - ret = -ENOENT; > - goto fail; > - } > - > - *offset = msm_gem_mmap_offset(obj); > - > - drm_gem_object_unreference_unlocked(obj); > - > -fail: > - return ret; > -} > - > void *etnaviv_gem_vaddr_locked(struct drm_gem_object *obj) > { > struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); > -- > 2.1.4 > And this one is also quite similar to this one: https://github.com/austriancoder/linux/commit/cf8e8813ba730334195bc3c74017a29d114e41d1 Except yours also removes align_pitch(..), which is good. greets -- Christian Gmeiner, MSc https://soundcloud.com/christian-gmeiner _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel