Re: [PATCH 2/4] drm/vc4: Wait for fences interruptibly in blocking mode.

From: Boris Brezillon
Date: Thu Jun 22 2017 - 03:23:58 EST


On Wed, 21 Jun 2017 11:50:00 -0700
Eric Anholt <eric@xxxxxxxxxx> wrote:

> We should allow SIGIO and things to interrupt us before we get to the
> no-error stage of the commit process. This code is effectively copied
> from drm_atomic_helper_commit().
>
> Signed-off-by: Eric Anholt <eric@xxxxxxxxxx>

Reviewed-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>

> ---
> drivers/gpu/drm/vc4/vc4_kms.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c
> index bc6ecdc6f104..6b1ccea76243 100644
> --- a/drivers/gpu/drm/vc4/vc4_kms.c
> +++ b/drivers/gpu/drm/vc4/vc4_kms.c
> @@ -142,6 +142,16 @@ static int vc4_atomic_commit(struct drm_device *dev,
> return ret;
> }
>
> + if (!nonblock) {
> + ret = drm_atomic_helper_wait_for_fences(dev, state, true);
> + if (ret) {
> + drm_atomic_helper_cleanup_planes(dev, state);
> + kfree(c);
> + up(&vc4->async_modeset);
> + return ret;
> + }
> + }
> +
> for_each_plane_in_state(state, plane, new_state, i) {
> if ((plane->state->fb != new_state->fb) && new_state->fb) {
> struct drm_gem_cma_object *cma_bo =