From: j.glisse@gmail.com
To: dri-devel@lists.freedesktop.org
Cc: "Jerome Glisse" <jglisse@redhat.com>,
"Christian König" <deathsimple@vodafone.de>
Subject: [PATCH 16/18] drm/radeon: move the semaphore from the fence into the ib
Date: Fri, 4 May 2012 18:43:57 -0400 [thread overview]
Message-ID: <1336171439-7672-17-git-send-email-j.glisse@gmail.com> (raw)
In-Reply-To: <1336171439-7672-1-git-send-email-j.glisse@gmail.com>
From: Jerome Glisse <jglisse@redhat.com>
It never really belonged there in the first place.
Signed-off-by: Christian König <deathsimple@vodafone.de>
---
drivers/gpu/drm/radeon/radeon.h | 16 ++++++++--------
drivers/gpu/drm/radeon/radeon_cs.c | 4 ++--
drivers/gpu/drm/radeon/radeon_fence.c | 3 ---
drivers/gpu/drm/radeon/radeon_ring.c | 2 ++
4 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 24220d1..3b9e2d3 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -272,7 +272,6 @@ struct radeon_fence {
uint64_t seq;
/* RB, DMA, etc. */
unsigned ring;
- struct radeon_semaphore *semaphore;
};
int radeon_fence_driver_start_ring(struct radeon_device *rdev, int ring);
@@ -615,13 +614,14 @@ void radeon_irq_kms_pflip_irq_put(struct radeon_device *rdev, int crtc);
*/
struct radeon_ib {
- struct radeon_sa_bo *sa_bo;
- uint32_t length_dw;
- uint64_t gpu_addr;
- uint32_t *ptr;
- struct radeon_fence *fence;
- unsigned vm_id;
- bool is_const_ib;
+ struct radeon_sa_bo *sa_bo;
+ uint32_t length_dw;
+ uint64_t gpu_addr;
+ uint32_t *ptr;
+ struct radeon_fence *fence;
+ unsigned vm_id;
+ bool is_const_ib;
+ struct radeon_semaphore *semaphore;
};
struct radeon_ring {
diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c
index 2aa3f89..7dbf632 100644
--- a/drivers/gpu/drm/radeon/radeon_cs.c
+++ b/drivers/gpu/drm/radeon/radeon_cs.c
@@ -138,12 +138,12 @@ static int radeon_cs_sync_rings(struct radeon_cs_parser *p)
return 0;
}
- r = radeon_semaphore_create(p->rdev, &p->ib->fence->semaphore);
+ r = radeon_semaphore_create(p->rdev, &p->ib->semaphore);
if (r) {
return r;
}
- return radeon_semaphore_sync_rings(p->rdev, p->ib->fence->semaphore,
+ return radeon_semaphore_sync_rings(p->rdev, p->ib->semaphore,
sync_to_ring, p->ring);
}
diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/radeon/radeon_fence.c
index 8b4778f..541ae92 100644
--- a/drivers/gpu/drm/radeon/radeon_fence.c
+++ b/drivers/gpu/drm/radeon/radeon_fence.c
@@ -137,8 +137,6 @@ static void radeon_fence_destroy(struct kref *kref)
fence = container_of(kref, struct radeon_fence, kref);
fence->seq = RADEON_FENCE_NOTEMITED_SEQ;
- if (fence->semaphore)
- radeon_semaphore_free(fence->rdev, fence->semaphore, NULL);
kfree(fence);
}
@@ -154,7 +152,6 @@ int radeon_fence_create(struct radeon_device *rdev,
(*fence)->rdev = rdev;
(*fence)->seq = RADEON_FENCE_NOTEMITED_SEQ;
(*fence)->ring = ring;
- (*fence)->semaphore = NULL;
return 0;
}
diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c
index c70a3b7..b41aa82 100644
--- a/drivers/gpu/drm/radeon/radeon_ring.c
+++ b/drivers/gpu/drm/radeon/radeon_ring.c
@@ -93,6 +93,7 @@ int radeon_ib_get(struct radeon_device *rdev, int ring,
(*ib)->gpu_addr = radeon_sa_bo_gpu_addr((*ib)->sa_bo);
(*ib)->vm_id = 0;
(*ib)->is_const_ib = false;
+ (*ib)->semaphore = NULL;
return 0;
}
@@ -105,6 +106,7 @@ void radeon_ib_free(struct radeon_device *rdev, struct radeon_ib **ib)
if (tmp == NULL) {
return;
}
+ radeon_semaphore_free(rdev, tmp->semaphore, tmp->fence);
radeon_sa_bo_free(rdev, &tmp->sa_bo, tmp->fence);
radeon_fence_unref(&tmp->fence);
kfree(tmp);
--
1.7.7.6
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2012-05-04 22:44 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-04 22:43 [RFC] fence, sa allocator, ib pool, semaphore rework j.glisse
2012-05-04 22:43 ` [PATCH 01/18] drm/radeon: replace the per ring mutex with a global one j.glisse
2012-05-04 22:43 ` [PATCH 02/18] drm/radeon: convert fence to uint64_t v3 j.glisse
2012-05-04 22:43 ` [PATCH 03/18] drm/radeon: rework fence handling, drop fence list v5 j.glisse
2012-05-04 22:43 ` [PATCH 04/18] drm/radeon: hold ring emission mutex for lockup detection j.glisse
2012-05-04 22:43 ` [PATCH 05/18] drm/radeon: use inline functions to calc sa_bo addr j.glisse
2012-05-04 22:43 ` [PATCH 06/18] drm/radeon: add proper locking to the SA v3 j.glisse
2012-05-04 22:43 ` [PATCH 07/18] drm/radeon: add sub allocator debugfs file j.glisse
2012-05-04 22:43 ` [PATCH 08/18] drm/radeon: keep start and end offset in the SA j.glisse
2012-05-04 22:43 ` [PATCH 09/18] drm/radeon: make sa bo a stand alone object j.glisse
2012-05-04 22:43 ` [PATCH 10/18] drm/radeon: define new SA interface v2 j.glisse
2012-05-04 22:43 ` [PATCH 11/18] drm/radeon: use one wait queue for all rings add fence_wait_any j.glisse
2012-05-04 22:43 ` [PATCH 12/18] drm/radeon: multiple ring allocator j.glisse
2012-05-04 22:43 ` [PATCH 13/18] drm/radeon: simplify semaphore handling v2 j.glisse
2012-05-04 22:43 ` [PATCH 14/18] drm/radeon: rip out the ib pool j.glisse
2012-05-04 22:43 ` [PATCH 15/18] drm/radeon: immediately remove ttm-move semaphore j.glisse
2012-05-04 22:43 ` j.glisse [this message]
2012-05-04 22:43 ` [PATCH 17/18] drm/radeon: remove r600 blit mutex v2 j.glisse
2012-05-04 22:43 ` [PATCH 18/18] drm/radeon: make the ib an inline object j.glisse
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=1336171439-7672-17-git-send-email-j.glisse@gmail.com \
--to=j.glisse@gmail.com \
--cc=deathsimple@vodafone.de \
--cc=dri-devel@lists.freedesktop.org \
--cc=jglisse@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox