All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chunming Zhou <zhoucm1-5C7GfCeVMHo@public.gmane.org>
To: "Marek Olšák" <maraeo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Subject: Re: [PATCH 1/3] drm/syncobj: extract two helpers from drm_syncobj_create
Date: Fri, 29 Sep 2017 10:44:22 +0800	[thread overview]
Message-ID: <4ae21aee-0b51-8338-b205-25d8910e2b86@amd.com> (raw)
In-Reply-To: <1505248934-1819-1-git-send-email-maraeo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>



On 2017年09月13日 04:42, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak@amd.com>
>
> For amdgpu.
>
> drm_syncobj_create is renamed to drm_syncobj_create_as_handle, and new
> helpers drm_syncobj_create and drm_syncobj_get_handle are added.
>
> Signed-off-by: Marek Olšák <marek.olsak@amd.com>
> ---
>   drivers/gpu/drm/drm_syncobj.c | 49 +++++++++++++++++++++++++++++++++++++++----
>   include/drm/drm_syncobj.h     |  4 ++++
>   2 files changed, 49 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c
> index 0422b8c..0bb1741 100644
> --- a/drivers/gpu/drm/drm_syncobj.c
> +++ b/drivers/gpu/drm/drm_syncobj.c
> @@ -262,8 +262,14 @@ void drm_syncobj_free(struct kref *kref)
>   }
>   EXPORT_SYMBOL(drm_syncobj_free);
>   
> -static int drm_syncobj_create(struct drm_file *file_private,
> -			      u32 *handle, uint32_t flags)
You can add a new parameter for passing dma fence, then in patch3, you 
can directly use it for AMDGPU_FENCE_TO HANDLE_GET_SYNCOBJ.

otherwise the set looks good to me.

Regards,
David Zhou

> +/**
> + * drm_syncobj_create - create a new syncobj
> + * @out_syncobj: returned syncobj
> + * @flags: DRM_SYNCOBJ_* flags
> + * @fence: if non-NULL, the syncobj will represent this fence
> + */
> +int drm_syncobj_create(struct drm_syncobj **out_syncobj, uint32_t flags,
> +		       struct dma_fence *fence)
>   {
>   	int ret;
>   	struct drm_syncobj *syncobj;
> @@ -284,6 +290,25 @@ static int drm_syncobj_create(struct drm_file *file_private,
>   		}
>   	}
>   
> +	if (fence)
> +		drm_syncobj_replace_fence(syncobj, fence);
> +
> +	*out_syncobj = syncobj;
> +	return 0;
> +}
> +EXPORT_SYMBOL(drm_syncobj_create);
> +
> +/**
> + * drm_syncobj_get_handle - get a handle from a syncobj
> + */
> +int drm_syncobj_get_handle(struct drm_file *file_private,
> +			   struct drm_syncobj *syncobj, u32 *handle)
> +{
> +	int ret;
> +
> +	/* take a reference to put in the idr */
> +	drm_syncobj_get(syncobj);
> +
>   	idr_preload(GFP_KERNEL);
>   	spin_lock(&file_private->syncobj_table_lock);
>   	ret = idr_alloc(&file_private->syncobj_idr, syncobj, 1, 0, GFP_NOWAIT);
> @@ -299,6 +324,22 @@ static int drm_syncobj_create(struct drm_file *file_private,
>   	*handle = ret;
>   	return 0;
>   }
> +EXPORT_SYMBOL(drm_syncobj_get_handle);
> +
> +static int drm_syncobj_create_as_handle(struct drm_file *file_private,
> +					u32 *handle, uint32_t flags)
> +{
> +	int ret;
> +	struct drm_syncobj *syncobj;
> +
> +	ret = drm_syncobj_create(&syncobj, flags, NULL);
> +	if (ret)
> +		return ret;
> +
> +	ret = drm_syncobj_get_handle(file_private, syncobj, handle);
> +	drm_syncobj_put(syncobj);
> +	return ret;
> +}
>   
>   static int drm_syncobj_destroy(struct drm_file *file_private,
>   			       u32 handle)
> @@ -522,8 +563,8 @@ drm_syncobj_create_ioctl(struct drm_device *dev, void *data,
>   	if (args->flags & ~DRM_SYNCOBJ_CREATE_SIGNALED)
>   		return -EINVAL;
>   
> -	return drm_syncobj_create(file_private,
> -				  &args->handle, args->flags);
> +	return drm_syncobj_create_as_handle(file_private,
> +					    &args->handle, args->flags);
>   }
>   
>   int
> diff --git a/include/drm/drm_syncobj.h b/include/drm/drm_syncobj.h
> index c00fee5..e7f0035 100644
> --- a/include/drm/drm_syncobj.h
> +++ b/include/drm/drm_syncobj.h
> @@ -136,5 +136,9 @@ int drm_syncobj_find_fence(struct drm_file *file_private,
>   			   u32 handle,
>   			   struct dma_fence **fence);
>   void drm_syncobj_free(struct kref *kref);
> +int drm_syncobj_create(struct drm_syncobj **out_syncobj, uint32_t flags,
> +		       struct dma_fence *fence);
> +int drm_syncobj_get_handle(struct drm_file *file_private,
> +			   struct drm_syncobj *syncobj, u32 *handle);
>   
>   #endif

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  parent reply	other threads:[~2017-09-29  2:44 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-12 20:42 [PATCH 1/3] drm/syncobj: extract two helpers from drm_syncobj_create Marek Olšák
2017-09-12 20:42 ` [PATCH 3/3] drm/amdgpu: add FENCE_TO_HANDLE ioctl that returns syncobj or sync_file Marek Olšák
     [not found]   ` <1505248934-1819-3-git-send-email-maraeo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-09-13  3:03     ` zhoucm1
2017-09-13  6:57       ` Christian König
     [not found]         ` <10bed18c-f41b-5570-c299-2be190767a20-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-09-13  7:03           ` zhoucm1
2017-09-13  7:09             ` Christian König
     [not found]               ` <a6c564e8-fe75-0e05-d267-e6dc7255b4af-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-09-13  7:39                 ` zhoucm1
2017-09-13  8:07                   ` Christian König
     [not found]                     ` <58914d9d-f140-9cf3-f91b-78db7d913d12-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-09-13  9:57                       ` zhoucm1
2017-09-13 10:11       ` Marek Olšák
     [not found]         ` <CAAxE2A7aR15Y9C2r_V_+6fTp-kEuFKwDApQRCnx_rxdsDOKtmw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-09-13 11:32           ` Zhou, David(ChunMing)
     [not found]             ` <MWHPR1201MB020689874960A24D32C4A39CB46E0-3iK1xFAIwjrUF/YbdlDdgWrFom/aUZj6nBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2017-09-13 12:06               ` Marek Olšák
2017-09-13 12:25                 ` Zhou, David(ChunMing)
2017-09-13 13:04                   ` Christian König
     [not found]                     ` <8927d6b6-f87c-00d9-57af-fdf4fb6dfcb8-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-09-13 13:46                       ` Zhou, David(ChunMing)
2017-09-13 14:06                         ` Marek Olšák
     [not found]                           ` <CAAxE2A72RAC61KOF10GTuged-pM4kpKGnnMJh-nmtF-xM4f9AQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-09-13 14:16                             ` Christian König
     [not found]                               ` <be64ba03-3aa9-6eaf-9267-c3ec51882c12-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2017-09-14  1:52                                 ` Dave Airlie
     [not found]                                   ` <CAPM=9typSOcf3L5Y6acDChY6R5fKMQ44LdCvKp_YZbX7B1LWiw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-09-14  2:07                                     ` zhoucm1
     [not found]                                       ` <8a800613-07ce-b417-8a1e-0db5a2e31758-5C7GfCeVMHo@public.gmane.org>
2017-09-14  2:26                                         ` zhoucm1
2017-09-14  2:33                                           ` Dave Airlie
2017-09-14  2:34                                             ` zhoucm1
2017-09-28 20:41     ` Marek Olšák
2017-09-28 23:42       ` Dave Airlie
     [not found]         ` <CAPM=9ty8YhG16QSE8OQTDaAPQxT7mXE=cRn1OJXXznUtcBaRSA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-09-29 12:35           ` Marek Olšák
2017-09-14  7:56 ` [PATCH 1/3] drm/syncobj: extract two helpers from drm_syncobj_create Emil Velikov
     [not found]   ` <CACvgo50uprnZZ_+wXLH59Knq2SUCZwoFsyYH6ydcNJQ9Eiaw3A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-09-14  8:01     ` Emil Velikov
     [not found]       ` <CACvgo51-pfQJgas_VhVv3gyp7DDAQfAtpb6pxNN7c54xDc46wQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-09-28 22:06         ` Marek Olšák
     [not found] ` <1505248934-1819-1-git-send-email-maraeo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-09-12 20:42   ` [PATCH 2/3] drm/syncobj: add a new helper drm_syncobj_get_fd Marek Olšák
2017-09-29  2:44   ` Chunming Zhou [this message]
2017-09-29 14:13     ` [PATCH 1/3] drm/syncobj: extract two helpers from drm_syncobj_create Marek Olšák
     [not found]       ` <CAAxE2A42G4-eD4x6VunDe4rW2c_GuaChn0Df+HE7wbvQYK0QFA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-09-29 14:15         ` Marek Olšák
     [not found]           ` <CAAxE2A6ecZnArHSu8P_DuHPOGhz0+6TfXtQshKWvhU1=1V4Lyg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-09-30  1:55             ` Chunming Zhou
2017-09-30 15:55               ` Marek Olšák
     [not found]                 ` <CAAxE2A6gfDHWU73ji+KVbtZH8pG1f8-1Ts2_FUh9MjyYa+b=oA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-09-30 23:20                   ` Zhou, David(ChunMing)
     [not found]                     ` <MWHPR1201MB02061877B54A8E252C7D2196B47F0-3iK1xFAIwjrUF/YbdlDdgWrFom/aUZj6nBOFsp37pqbUKgpGm//BTAC/G2K4zDHf@public.gmane.org>
2017-10-12 20:33                       ` Marek Olšák

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4ae21aee-0b51-8338-b205-25d8910e2b86@amd.com \
    --to=zhoucm1-5c7gfcevmho@public.gmane.org \
    --cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=maraeo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.