On 02/08, Maíra Canal wrote: > As v3d_job_add_deps() performs the same steps as > drm_sched_job_add_syncobj_dependency(), replace the open-coded > implementation in v3d in order to simply, using the DRM function. > > Signed-off-by: Maíra Canal <mcanal@xxxxxxxxxx> > --- > drivers/gpu/drm/v3d/v3d_gem.c | 9 +-------- > 1 file changed, 1 insertion(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/v3d/v3d_gem.c b/drivers/gpu/drm/v3d/v3d_gem.c > index 5da1806f3969..f149526ec971 100644 > --- a/drivers/gpu/drm/v3d/v3d_gem.c > +++ b/drivers/gpu/drm/v3d/v3d_gem.c > @@ -400,14 +400,7 @@ static int > v3d_job_add_deps(struct drm_file *file_priv, struct v3d_job *job, > u32 in_sync, u32 point) > { > - struct dma_fence *in_fence = NULL; > - int ret; > - > - ret = drm_syncobj_find_fence(file_priv, in_sync, point, 0, &in_fence); > - if (ret == -EINVAL) > - return ret; > - > - return drm_sched_job_add_dependency(&job->base, in_fence); > + return drm_sched_job_add_syncobj_dependency(&job->base, file_priv, in_sync, point); Hi Maíra, First, thanks for making this function a common-code. There are two issues to address before moving v3d to the new drm_sche_job_add_syncobj_dependency(): 1. We don't need the v3d_job_add_deps one line function just wrapping the new drm_sched_job_add_syncobj_dependency() with the same parameters. We can just replace all occurrences of v3d function with drm_sched function. Except if we use v3d_job_add_deps to address the second issue: 2. Currently, v3d_job_add_deps returns 0 (success) if drm_syncobj_find_fence() doesn't find the syncobj from handle (-ENOENT), but drm_sched_job_add_syncobj_dependency() returns a negative value on this case. If it happens, job submissions will fail (and may cause a regression). One way to solve it is checking the return value of drm_sched_job_add_syncobj_dependency in v3d_job_add_deps. The second way is to replace v3d_job_add_deps by drm_sched_job_add_syncobj_dependency and check expected return values there. Melissa > } > > static int > -- > 2.39.1 >
Attachment:
signature.asc
Description: PGP signature