The last user of vc4_queue_seqno_cb() (async page flip handling code)
is gone. Get rid of this function and all the related structs and
fields.

Signed-off-by: Boris Brezillon <boris.brezil...@bootlin.com>
---
 drivers/gpu/drm/vc4/vc4_drv.h | 14 --------------
 drivers/gpu/drm/vc4/vc4_gem.c | 39 ---------------------------------------
 2 files changed, 53 deletions(-)

diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h
index 1b4cd1fabf56..80ed7d02fcee 100644
--- a/drivers/gpu/drm/vc4/vc4_drv.h
+++ b/drivers/gpu/drm/vc4/vc4_drv.h
@@ -158,11 +158,6 @@ struct vc4_dev {
         */
        struct vc4_perfmon *active_perfmon;
 
-       /* List of struct vc4_seqno_cb for callbacks to be made from a
-        * workqueue when the given seqno is passed.
-        */
-       struct list_head seqno_cb_list;
-
        /* The memory used for storing binner tile alloc, tile state,
         * and overflow memory allocations.  This is freed when V3D
         * powers down.
@@ -271,12 +266,6 @@ to_vc4_fence(struct dma_fence *fence)
        return (struct vc4_fence *)fence;
 }
 
-struct vc4_seqno_cb {
-       struct work_struct work;
-       uint64_t seqno;
-       void (*func)(struct vc4_seqno_cb *cb);
-};
-
 struct vc4_v3d {
        struct vc4_dev *vc4;
        struct platform_device *pdev;
@@ -692,9 +681,6 @@ void vc4_move_job_to_render(struct drm_device *dev, struct 
vc4_exec_info *exec);
 int vc4_wait_for_seqno(struct drm_device *dev, uint64_t seqno,
                       uint64_t timeout_ns, bool interruptible);
 void vc4_job_handle_completed(struct vc4_dev *vc4);
-int vc4_queue_seqno_cb(struct drm_device *dev,
-                      struct vc4_seqno_cb *cb, uint64_t seqno,
-                      void (*func)(struct vc4_seqno_cb *cb));
 int vc4_gem_madvise_ioctl(struct drm_device *dev, void *data,
                          struct drm_file *file_priv);
 
diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c
index 2107b0daf8ef..93d52be1cd37 100644
--- a/drivers/gpu/drm/vc4/vc4_gem.c
+++ b/drivers/gpu/drm/vc4/vc4_gem.c
@@ -973,7 +973,6 @@ void
 vc4_job_handle_completed(struct vc4_dev *vc4)
 {
        unsigned long irqflags;
-       struct vc4_seqno_cb *cb, *cb_temp;
 
        spin_lock_irqsave(&vc4->job_lock, irqflags);
        while (!list_empty(&vc4->job_done_list)) {
@@ -987,46 +986,9 @@ vc4_job_handle_completed(struct vc4_dev *vc4)
                spin_lock_irqsave(&vc4->job_lock, irqflags);
        }
 
-       list_for_each_entry_safe(cb, cb_temp, &vc4->seqno_cb_list, work.entry) {
-               if (cb->seqno <= vc4->finished_seqno) {
-                       list_del_init(&cb->work.entry);
-                       schedule_work(&cb->work);
-               }
-       }
-
        spin_unlock_irqrestore(&vc4->job_lock, irqflags);
 }
 
-static void vc4_seqno_cb_work(struct work_struct *work)
-{
-       struct vc4_seqno_cb *cb = container_of(work, struct vc4_seqno_cb, work);
-
-       cb->func(cb);
-}
-
-int vc4_queue_seqno_cb(struct drm_device *dev,
-                      struct vc4_seqno_cb *cb, uint64_t seqno,
-                      void (*func)(struct vc4_seqno_cb *cb))
-{
-       struct vc4_dev *vc4 = to_vc4_dev(dev);
-       int ret = 0;
-       unsigned long irqflags;
-
-       cb->func = func;
-       INIT_WORK(&cb->work, vc4_seqno_cb_work);
-
-       spin_lock_irqsave(&vc4->job_lock, irqflags);
-       if (seqno > vc4->finished_seqno) {
-               cb->seqno = seqno;
-               list_add_tail(&cb->work.entry, &vc4->seqno_cb_list);
-       } else {
-               schedule_work(&cb->work);
-       }
-       spin_unlock_irqrestore(&vc4->job_lock, irqflags);
-
-       return ret;
-}
-
 /* Scheduled when any job has been completed, this walks the list of
  * jobs that had completed and unrefs their BOs and frees their exec
  * structs.
@@ -1211,7 +1173,6 @@ vc4_gem_init(struct drm_device *dev)
        INIT_LIST_HEAD(&vc4->bin_job_list);
        INIT_LIST_HEAD(&vc4->render_job_list);
        INIT_LIST_HEAD(&vc4->job_done_list);
-       INIT_LIST_HEAD(&vc4->seqno_cb_list);
        spin_lock_init(&vc4->job_lock);
 
        INIT_WORK(&vc4->hangcheck.reset_work, vc4_reset_work);
-- 
2.14.1

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

Reply via email to