Hi Philipp,

2017-03-08 Philipp Zabel <p.za...@pengutronix.de>:

> Based on commit 4cd0945901a6 ("drm/msm: submit support for out-fences").
> We increment the minor driver version so userspace can detect explicit
> fence support.
> 
> Signed-off-by: Philipp Zabel <p.za...@pengutronix.de>
> ---
>  drivers/gpu/drm/etnaviv/etnaviv_drv.c        |  2 +-
>  drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 27 +++++++++++++++++++++++++++
>  include/uapi/drm/etnaviv_drm.h               |  6 ++++--
>  3 files changed, 32 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_drv.c 
> b/drivers/gpu/drm/etnaviv/etnaviv_drv.c
> index 587e45043542b..00f7e9acf68ad 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_drv.c
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_drv.c
> @@ -512,7 +512,7 @@ static struct drm_driver etnaviv_drm_driver = {
>       .desc               = "etnaviv DRM",
>       .date               = "20151214",
>       .major              = 1,
> -     .minor              = 0,
> +     .minor              = 1,
>  };
>  
>  /*
> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c 
> b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
> index 022fcc7d57f48..7d4dc946104b9 100644
> --- a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
> +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
> @@ -307,6 +307,8 @@ int etnaviv_ioctl_gem_submit(struct drm_device *dev, void 
> *data,
>       struct etnaviv_cmdbuf *cmdbuf;
>       struct etnaviv_gpu *gpu;
>       struct dma_fence *in_fence = NULL;
> +     struct sync_file *sync_file = NULL;
> +     int out_fence_fd = -1;
>       void *stream;
>       int ret;
>  
> @@ -374,6 +376,14 @@ int etnaviv_ioctl_gem_submit(struct drm_device *dev, 
> void *data,
>               goto err_submit_cmds;
>       }
>  
> +     if (args->flags & ETNA_SUBMIT_FENCE_FD_OUT) {
> +             out_fence_fd = get_unused_fd_flags(O_CLOEXEC);
> +             if (out_fence_fd < 0) {
> +                     ret = out_fence_fd;
> +                     goto err_submit_cmds;
> +             }
> +     }
> +
>       submit = submit_create(dev, gpu, args->nr_bos);
>       if (!submit) {
>               ret = -ENOMEM;
> @@ -437,10 +447,25 @@ int etnaviv_ioctl_gem_submit(struct drm_device *dev, 
> void *data,
>               goto out;
>       }
>  
> +     if (args->flags & ETNA_SUBMIT_FENCE_FD_OUT) {
> +             sync_file = sync_file_create(submit->fence);
> +             if (!sync_file) {
> +                     dma_fence_put(submit->fence);
> +                     submit->fence = NULL;
> +                     ret = -ENOMEM;
> +                     goto out;
> +             }
> +     }
> +
>       ret = etnaviv_gpu_submit(gpu, submit, cmdbuf);
>       if (ret == 0)
>               cmdbuf = NULL;
>  
> +     if (args->flags & ETNA_SUBMIT_FENCE_FD_OUT) {
> +             fd_install(out_fence_fd, sync_file->file);
> +     }

Extra braces here.

Otherwise looks good to me.

Reviewed-by: Gustavo Padovan <gustavo.pado...@collabora.com>

Gustavo

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to