From: Melissa Wen <m...@igalia.com>

IOCTLs related to BO operations reside on the file v3d_bo.c. The wait BO
ioctl is the only IOCTL regarding BOs that is placed in a different file.
So, move it to the v3d_bo.c file.

Signed-off-by: Melissa Wen <m...@igalia.com>
Signed-off-by: Maíra Canal <mca...@igalia.com>
---
 drivers/gpu/drm/v3d/v3d_bo.c  | 33 +++++++++++++++++++++++++++++++++
 drivers/gpu/drm/v3d/v3d_drv.h |  4 ++--
 drivers/gpu/drm/v3d/v3d_gem.c | 33 ---------------------------------
 3 files changed, 35 insertions(+), 35 deletions(-)

diff --git a/drivers/gpu/drm/v3d/v3d_bo.c b/drivers/gpu/drm/v3d/v3d_bo.c
index 8b3229a37c6d..357a0da7e16a 100644
--- a/drivers/gpu/drm/v3d/v3d_bo.c
+++ b/drivers/gpu/drm/v3d/v3d_bo.c
@@ -233,3 +233,36 @@ int v3d_get_bo_offset_ioctl(struct drm_device *dev, void 
*data,
        drm_gem_object_put(gem_obj);
        return 0;
 }
+
+int
+v3d_wait_bo_ioctl(struct drm_device *dev, void *data,
+                 struct drm_file *file_priv)
+{
+       int ret;
+       struct drm_v3d_wait_bo *args = data;
+       ktime_t start = ktime_get();
+       u64 delta_ns;
+       unsigned long timeout_jiffies =
+               nsecs_to_jiffies_timeout(args->timeout_ns);
+
+       if (args->pad != 0)
+               return -EINVAL;
+
+       ret = drm_gem_dma_resv_wait(file_priv, args->handle,
+                                   true, timeout_jiffies);
+
+       /* Decrement the user's timeout, in case we got interrupted
+        * such that the ioctl will be restarted.
+        */
+       delta_ns = ktime_to_ns(ktime_sub(ktime_get(), start));
+       if (delta_ns < args->timeout_ns)
+               args->timeout_ns -= delta_ns;
+       else
+               args->timeout_ns = 0;
+
+       /* Asked to wait beyond the jiffie/scheduler precision? */
+       if (ret == -ETIME && args->timeout_ns)
+               ret = -EAGAIN;
+
+       return ret;
+}
diff --git a/drivers/gpu/drm/v3d/v3d_drv.h b/drivers/gpu/drm/v3d/v3d_drv.h
index d8b392494eba..fc04372d5cbd 100644
--- a/drivers/gpu/drm/v3d/v3d_drv.h
+++ b/drivers/gpu/drm/v3d/v3d_drv.h
@@ -385,6 +385,8 @@ int v3d_mmap_bo_ioctl(struct drm_device *dev, void *data,
                      struct drm_file *file_priv);
 int v3d_get_bo_offset_ioctl(struct drm_device *dev, void *data,
                            struct drm_file *file_priv);
+int v3d_wait_bo_ioctl(struct drm_device *dev, void *data,
+                     struct drm_file *file_priv);
 struct drm_gem_object *v3d_prime_import_sg_table(struct drm_device *dev,
                                                 struct dma_buf_attachment 
*attach,
                                                 struct sg_table *sgt);
@@ -405,8 +407,6 @@ int v3d_submit_tfu_ioctl(struct drm_device *dev, void *data,
                         struct drm_file *file_priv);
 int v3d_submit_csd_ioctl(struct drm_device *dev, void *data,
                         struct drm_file *file_priv);
-int v3d_wait_bo_ioctl(struct drm_device *dev, void *data,
-                     struct drm_file *file_priv);
 void v3d_job_cleanup(struct v3d_job *job);
 void v3d_job_put(struct v3d_job *job);
 void v3d_reset(struct v3d_dev *v3d);
diff --git a/drivers/gpu/drm/v3d/v3d_gem.c b/drivers/gpu/drm/v3d/v3d_gem.c
index 9d2ac23c29e3..26f62a48d226 100644
--- a/drivers/gpu/drm/v3d/v3d_gem.c
+++ b/drivers/gpu/drm/v3d/v3d_gem.c
@@ -363,39 +363,6 @@ void v3d_job_put(struct v3d_job *job)
        kref_put(&job->refcount, job->free);
 }
 
-int
-v3d_wait_bo_ioctl(struct drm_device *dev, void *data,
-                 struct drm_file *file_priv)
-{
-       int ret;
-       struct drm_v3d_wait_bo *args = data;
-       ktime_t start = ktime_get();
-       u64 delta_ns;
-       unsigned long timeout_jiffies =
-               nsecs_to_jiffies_timeout(args->timeout_ns);
-
-       if (args->pad != 0)
-               return -EINVAL;
-
-       ret = drm_gem_dma_resv_wait(file_priv, args->handle,
-                                   true, timeout_jiffies);
-
-       /* Decrement the user's timeout, in case we got interrupted
-        * such that the ioctl will be restarted.
-        */
-       delta_ns = ktime_to_ns(ktime_sub(ktime_get(), start));
-       if (delta_ns < args->timeout_ns)
-               args->timeout_ns -= delta_ns;
-       else
-               args->timeout_ns = 0;
-
-       /* Asked to wait beyond the jiffie/scheduler precision? */
-       if (ret == -ETIME && args->timeout_ns)
-               ret = -EAGAIN;
-
-       return ret;
-}
-
 static int
 v3d_job_init(struct v3d_dev *v3d, struct drm_file *file_priv,
             void **container, size_t size, void (*free)(struct kref *ref),
-- 
2.42.0

Reply via email to