mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/
synced 2026-04-18 06:33:43 -04:00
Backmerge tag 'v6.1-rc6' into drm-next
Linux 6.1-rc6 This is needed for drm-misc-next and tegra. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -109,6 +109,7 @@ static int amdgpu_cs_p1_ib(struct amdgpu_cs_parser *p,
|
||||
return r;
|
||||
|
||||
++(num_ibs[r]);
|
||||
p->gang_leader_idx = r;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -298,7 +299,7 @@ static int amdgpu_cs_pass1(struct amdgpu_cs_parser *p,
|
||||
if (ret)
|
||||
goto free_all_kdata;
|
||||
}
|
||||
p->gang_leader = p->jobs[p->gang_size - 1];
|
||||
p->gang_leader = p->jobs[p->gang_leader_idx];
|
||||
|
||||
if (p->ctx->vram_lost_counter != p->gang_leader->vram_lost_counter) {
|
||||
ret = -ECANCELED;
|
||||
@@ -1210,10 +1211,9 @@ static int amdgpu_cs_sync_rings(struct amdgpu_cs_parser *p)
|
||||
return r;
|
||||
}
|
||||
|
||||
r = amdgpu_ctx_wait_prev_fence(p->ctx, p->entities[p->gang_size - 1]);
|
||||
r = amdgpu_ctx_wait_prev_fence(p->ctx, p->entities[p->gang_leader_idx]);
|
||||
if (r && r != -ERESTARTSYS)
|
||||
DRM_ERROR("amdgpu_ctx_wait_prev_fence failed.\n");
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
@@ -1247,9 +1247,12 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
|
||||
for (i = 0; i < p->gang_size; ++i)
|
||||
drm_sched_job_arm(&p->jobs[i]->base);
|
||||
|
||||
for (i = 0; i < (p->gang_size - 1); ++i) {
|
||||
for (i = 0; i < p->gang_size; ++i) {
|
||||
struct dma_fence *fence;
|
||||
|
||||
if (p->jobs[i] == leader)
|
||||
continue;
|
||||
|
||||
fence = &p->jobs[i]->base.s_fence->scheduled;
|
||||
r = drm_sched_job_add_dependency(&leader->base, fence);
|
||||
if (r)
|
||||
@@ -1286,7 +1289,10 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
|
||||
list_for_each_entry(e, &p->validated, tv.head) {
|
||||
|
||||
/* Everybody except for the gang leader uses READ */
|
||||
for (i = 0; i < (p->gang_size - 1); ++i) {
|
||||
for (i = 0; i < p->gang_size; ++i) {
|
||||
if (p->jobs[i] == leader)
|
||||
continue;
|
||||
|
||||
dma_resv_add_fence(e->tv.bo->base.resv,
|
||||
&p->jobs[i]->base.s_fence->finished,
|
||||
DMA_RESV_USAGE_READ);
|
||||
@@ -1296,7 +1302,7 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
|
||||
e->tv.num_shared = 0;
|
||||
}
|
||||
|
||||
seq = amdgpu_ctx_add_fence(p->ctx, p->entities[p->gang_size - 1],
|
||||
seq = amdgpu_ctx_add_fence(p->ctx, p->entities[p->gang_leader_idx],
|
||||
p->fence);
|
||||
amdgpu_cs_post_dependencies(p);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user