diff mbox

[RFC,105/111] staging: etnaviv: prune dumb buffer support

Message ID 1427988653-754-106-git-send-email-l.stach@pengutronix.de (mailing list archive)
State New, archived
Headers show

Commit Message

Lucas Stach April 2, 2015, 3:30 p.m. UTC
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@pengutronix.de>
---
 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(-)

Comments

Christian Gmeiner April 7, 2015, 7:37 a.m. UTC | #1
2015-04-02 17:30 GMT+02:00 Lucas Stach <l.stach@pengutronix.de>:
> 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@pengutronix.de>
> ---
>  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
diff mbox

Patch

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);