..
> diff --git a/drivers/gpu/host1x/fence.c b/drivers/gpu/host1x/fence.c
> new file mode 100644
> index 000000000000..2b0bb97f053f
> --- /dev/null
> +++ b/drivers/gpu/host1x/fence.c
> @@ -0,0 +1,184 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +/*
> + * Syncpoint dma_fence implementation
> + *
> + * Copyright (c) 2020, NVIDIA Corporation.
> + */
> +
> +#include <linux/dma-fence.h>
> +#include <linux/file.h>
> +#include <linux/fs.h>
> +#include <linux/slab.h>
> +#include <linux/sync_file.h>

Stale headers

> +#include "fence.h"
> +#include "intr.h"
> +#include "syncpt.h"
> +
> +DEFINE_SPINLOCK(lock);

static

...
> +static bool host1x_syncpt_fence_enable_signaling(struct dma_fence *f)
> +{
> +     struct host1x_syncpt_fence *sf = to_host1x_fence(f);
> +     int err;
> +
> +     if (host1x_syncpt_is_expired(sf->sp, sf->threshold))
> +             return false;
> +
> +     dma_fence_get(f);
> +
> +     /*
> +      * The dma_fence framework requires the fence driver to keep a
> +      * reference to any fences for which 'enable_signaling' has been
> +      * called (and that have not been signalled).
> +      * 
> +      * We provide a userspace API to create arbitrary syncpoint fences,
> +      * so we cannot normally guarantee that all fences get signalled.
> +      * As such, setup a timeout, so that long-lasting fences will get
> +      * reaped eventually.
> +      */
> +     schedule_delayed_work(&sf->timeout_work, msecs_to_jiffies(30000));

I don't see this API. Please always remove all dead code, make patches
minimal and functional.

...> +int host1x_fence_extract(struct dma_fence *fence, u32 *id, u32
*threshold)
> +{
> +     struct host1x_syncpt_fence *f;
> +
> +     if (fence->ops != &host1x_syncpt_fence_ops)
> +             return -EINVAL;
> +
> +     f = container_of(fence, struct host1x_syncpt_fence, base);
> +
> +     *id = f->sp->id;
> +     *threshold = f->threshold;
> +
> +     return 0;
> +}
> +EXPORT_SYMBOL(host1x_fence_extract);

dead code

Reply via email to