Move vc4_wait_bo_ioctl() from vc4_gem.c to vc4_bo.c, grouping it with the other BO-related ioctls. No functional change.
Signed-off-by: Maíra Canal <[email protected]> --- drivers/gpu/drm/vc4/vc4_bo.c | 33 +++++++++++++++++++++++++++++++++ drivers/gpu/drm/vc4/vc4_drv.h | 4 ++-- drivers/gpu/drm/vc4/vc4_gem.c | 33 --------------------------------- 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c index 46b4474ac41d46f836f0896b3b5f57f09629e24e..c32e3d24d26af1ffb50e099decb37252769de9a0 100644 --- a/drivers/gpu/drm/vc4/vc4_bo.c +++ b/drivers/gpu/drm/vc4/vc4_bo.c @@ -830,6 +830,39 @@ int vc4_mmap_bo_ioctl(struct drm_device *dev, void *data, return 0; } +int +vc4_wait_bo_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv) +{ + struct vc4_dev *vc4 = to_vc4_dev(dev); + int ret; + struct drm_vc4_wait_bo *args = data; + unsigned long timeout_jiffies = + usecs_to_jiffies(div_u64(args->timeout_ns, 1000)); + ktime_t start = ktime_get(); + u64 delta_ns; + + if (WARN_ON_ONCE(vc4->gen > VC4_GEN_4)) + return -ENODEV; + + 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; + + return ret; +} + int vc4_create_shader_bo_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv) diff --git a/drivers/gpu/drm/vc4/vc4_drv.h b/drivers/gpu/drm/vc4/vc4_drv.h index dbcc83b7df004519c9c74a618b81877a14796d36..0f2fb035fef177dd446ff8322da2413c861ecfd3 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.h +++ b/drivers/gpu/drm/vc4/vc4_drv.h @@ -906,6 +906,8 @@ int vc4_bo_dumb_create(struct drm_file *file_priv, struct drm_mode_create_dumb *args); int vc4_create_bo_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); +int vc4_wait_bo_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); int vc4_create_shader_bo_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); int vc4_mmap_bo_ioctl(struct drm_device *dev, void *data, @@ -990,8 +992,6 @@ int vc4_submit_cl_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); int vc4_wait_seqno_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); -int vc4_wait_bo_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); void vc4_submit_next_bin_job(struct drm_device *dev); void vc4_submit_next_render_job(struct drm_device *dev); void vc4_move_job_to_render(struct drm_device *dev, struct vc4_exec_info *exec); diff --git a/drivers/gpu/drm/vc4/vc4_gem.c b/drivers/gpu/drm/vc4/vc4_gem.c index f943ff7da28ae528c0fdfac76e989a2d5286d193..9df2634e48566ba12858c135a3c313efa7bd120c 100644 --- a/drivers/gpu/drm/vc4/vc4_gem.c +++ b/drivers/gpu/drm/vc4/vc4_gem.c @@ -962,39 +962,6 @@ vc4_wait_seqno_ioctl(struct drm_device *dev, void *data, &args->timeout_ns); } -int -vc4_wait_bo_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv) -{ - struct vc4_dev *vc4 = to_vc4_dev(dev); - int ret; - struct drm_vc4_wait_bo *args = data; - unsigned long timeout_jiffies = - usecs_to_jiffies(div_u64(args->timeout_ns, 1000)); - ktime_t start = ktime_get(); - u64 delta_ns; - - if (WARN_ON_ONCE(vc4->gen > VC4_GEN_4)) - return -ENODEV; - - 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; - - return ret; -} - /** * vc4_submit_cl_ioctl() - Submits a job (frame) to the VC4. * @dev: DRM device -- 2.52.0
