summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Clark <robclark@freedesktop.org>2016-06-18 09:08:53 -0400
committerRob Clark <robclark@freedesktop.org>2016-07-20 19:42:21 -0400
commit0d6152913098d739be07f9085cdf44c9cc68d096 (patch)
tree04a617269f57511628ea510504ddf4db6affdbd7
parent892141a321c7acd32000e145916217eda2da14bb (diff)
downloaddrm-0d6152913098d739be07f9085cdf44c9cc68d096.tar.gz
freedreno/msm: drop return from get_cmd()
Not actually needed. It just needs to ensure that there is a corresponding entry in the submit's cmds table. Signed-off-by: Rob Clark <robclark@freedesktop.org>
-rw-r--r--freedreno/msm/msm_ringbuffer.c36
1 files changed, 16 insertions, 20 deletions
diff --git a/freedreno/msm/msm_ringbuffer.c b/freedreno/msm/msm_ringbuffer.c
index 66ae1463..4b46c202 100644
--- a/freedreno/msm/msm_ringbuffer.c
+++ b/freedreno/msm/msm_ringbuffer.c
@@ -176,12 +176,15 @@ static int check_cmd_bo(struct fd_ringbuffer *ring,
return msm_ring->submit.bos[cmd->submit_idx].handle == bo->handle;
}
-static struct drm_msm_gem_submit_cmd * get_cmd(struct fd_ringbuffer *ring,
+/* Ensure that submit has corresponding entry in cmds table for the
+ * target cmdstream buffer:
+ */
+static void get_cmd(struct fd_ringbuffer *ring,
struct fd_ringbuffer *target_ring, struct fd_bo *target_bo,
uint32_t submit_offset, uint32_t size, uint32_t type)
{
struct msm_ringbuffer *msm_ring = to_msm_ringbuffer(ring);
- struct drm_msm_gem_submit_cmd *cmd = NULL;
+ struct drm_msm_gem_submit_cmd *cmd;
uint32_t i;
/* figure out if we already have a cmd buf: */
@@ -191,24 +194,19 @@ static struct drm_msm_gem_submit_cmd * get_cmd(struct fd_ringbuffer *ring,
(cmd->size == size) &&
(cmd->type == type) &&
check_cmd_bo(ring, cmd, target_bo))
- break;
- cmd = NULL;
+ return;
}
/* create cmd buf if not: */
- if (!cmd) {
- uint32_t idx = APPEND(&msm_ring->submit, cmds);
- APPEND(msm_ring, rings);
- msm_ring->rings[idx] = target_ring;
- cmd = &msm_ring->submit.cmds[idx];
- cmd->type = type;
- cmd->submit_idx = bo2idx(ring, target_bo, FD_RELOC_READ);
- cmd->submit_offset = submit_offset;
- cmd->size = size;
- cmd->pad = 0;
- }
-
- return cmd;
+ i = APPEND(&msm_ring->submit, cmds);
+ APPEND(msm_ring, rings);
+ msm_ring->rings[i] = target_ring;
+ cmd = &msm_ring->submit.cmds[i];
+ cmd->type = type;
+ cmd->submit_idx = bo2idx(ring, target_bo, FD_RELOC_READ);
+ cmd->submit_offset = submit_offset;
+ cmd->size = size;
+ cmd->pad = 0;
}
static void * msm_ringbuffer_hostptr(struct fd_ringbuffer *ring)
@@ -360,11 +358,9 @@ static void msm_ringbuffer_emit_reloc_ring(struct fd_ringbuffer *ring,
uint32_t submit_offset, uint32_t size)
{
struct fd_bo *target_bo = to_msm_ringbuffer(target)->ring_bo;
- struct drm_msm_gem_submit_cmd *cmd;
- cmd = get_cmd(ring, target, target_bo, submit_offset, size,
+ get_cmd(ring, target, target_bo, submit_offset, size,
MSM_SUBMIT_CMD_IB_TARGET_BUF);
- assert(cmd);
msm_ringbuffer_emit_reloc(ring, &(struct fd_reloc){
.bo = target_bo,