diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0194-drm-amdgpu-add-ctx_id-to-the-WAIT_CS-IOCTL-v4.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0194-drm-amdgpu-add-ctx_id-to-the-WAIT_CS-IOCTL-v4.patch | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/common/recipes-kernel/linux/files/0194-drm-amdgpu-add-ctx_id-to-the-WAIT_CS-IOCTL-v4.patch b/common/recipes-kernel/linux/files/0194-drm-amdgpu-add-ctx_id-to-the-WAIT_CS-IOCTL-v4.patch deleted file mode 100644 index 6f0c329e..00000000 --- a/common/recipes-kernel/linux/files/0194-drm-amdgpu-add-ctx_id-to-the-WAIT_CS-IOCTL-v4.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 66b3cf2ab38f47db2d07fe24a00972fbf822cd74 Mon Sep 17 00:00:00 2001 -From: Jammy Zhou <Jammy.Zhou@amd.com> -Date: Fri, 8 May 2015 17:29:40 +0800 -Subject: [PATCH 0194/1050] drm/amdgpu: add ctx_id to the WAIT_CS IOCTL (v4) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It is required to support fence per context. - -v2: add amdgpu_ctx_get/put -v3: improve get/put -v4: squash hlock fix - -Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com> -Reviewed-by: Christian König <christian.koenig@amd.com> ---- - drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 ++ - drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 6 ++++++ - drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 30 ++++++++++++++++++++++++++++++ - 3 files changed, 38 insertions(+) - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h -index cef3a43..bf0c607 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h -@@ -1902,6 +1902,8 @@ int amdgpu_ctx_query(struct amdgpu_device *adev, struct amdgpu_fpriv *fpriv, - uint32_t id,struct amdgpu_ctx_state *state); - - void amdgpu_ctx_fini(struct amdgpu_fpriv *fpriv); -+struct amdgpu_ctx *amdgpu_ctx_get(struct amdgpu_fpriv *fpriv, uint32_t id); -+int amdgpu_ctx_put(struct amdgpu_ctx *ctx); - - extern int amdgpu_ctx_ioctl(struct drm_device *dev, void *data, - struct drm_file *filp); -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c -index ffbe9aa..86b9324 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c -@@ -768,8 +768,13 @@ int amdgpu_cs_wait_ioctl(struct drm_device *dev, void *data, - uint64_t seq[AMDGPU_MAX_RINGS] = {0}; - struct amdgpu_ring *ring = NULL; - unsigned long timeout = amdgpu_gem_timeout(wait->in.timeout); -+ struct amdgpu_ctx *ctx; - long r; - -+ ctx = amdgpu_ctx_get(filp->driver_priv, wait->in.ctx_id); -+ if (ctx == NULL) -+ return -EINVAL; -+ - r = amdgpu_cs_get_ring(adev, wait->in.ip_type, wait->in.ip_instance, - wait->in.ring, &ring); - if (r) -@@ -778,6 +783,7 @@ int amdgpu_cs_wait_ioctl(struct drm_device *dev, void *data, - seq[ring->idx] = wait->in.handle; - - r = amdgpu_fence_wait_seq_timeout(adev, seq, true, timeout); -+ amdgpu_ctx_put(ctx); - if (r < 0) - return r; - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c -index 0dc3a4e..bcd332e 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c -@@ -151,3 +151,33 @@ int amdgpu_ctx_ioctl(struct drm_device *dev, void *data, - - return r; - } -+ -+struct amdgpu_ctx *amdgpu_ctx_get(struct amdgpu_fpriv *fpriv, uint32_t id) -+{ -+ struct amdgpu_ctx *ctx; -+ struct amdgpu_ctx_mgr *mgr = &fpriv->ctx_mgr; -+ -+ mutex_lock(&mgr->lock); -+ ctx = idr_find(&mgr->ctx_handles, id); -+ if (ctx) -+ kref_get(&ctx->refcount); -+ mutex_unlock(&mgr->lock); -+ return ctx; -+} -+ -+int amdgpu_ctx_put(struct amdgpu_ctx *ctx) -+{ -+ struct amdgpu_fpriv *fpriv; -+ struct amdgpu_ctx_mgr *mgr; -+ -+ if (ctx == NULL) -+ return -EINVAL; -+ -+ fpriv = ctx->fpriv; -+ mgr = &fpriv->ctx_mgr; -+ mutex_lock(&mgr->lock); -+ kref_put(&ctx->refcount, amdgpu_ctx_do_release); -+ mutex_unlock(&mgr->lock); -+ -+ return 0; -+} --- -1.9.1 - |