diff options
| author | Thomas Zimmermann <[email protected]> | 2024-02-07 12:01:19 +0000 |
|---|---|---|
| committer | Thomas Zimmermann <[email protected]> | 2024-02-07 12:02:20 +0000 |
| commit | 0e85f1ae4ac6dae238b0f35232d1aa52e1b6943f (patch) | |
| tree | 75b387bc359637c15b90ababb1ff073ca68b5bd8 /drivers/gpu/drm/scheduler/sched_main.c | |
| parent | drm: mipi-dsi: make mipi_dsi_bus_type const (diff) | |
| parent | Merge tag 'drm-misc-next-2024-01-11' of git://anongit.freedesktop.org/drm/drm... (diff) | |
| download | kernel-0e85f1ae4ac6dae238b0f35232d1aa52e1b6943f.tar.gz kernel-0e85f1ae4ac6dae238b0f35232d1aa52e1b6943f.zip | |
Merge drm/drm-next into drm-misc-next
Backmerging to update drm-misc-next to the state of v6.8-rc3. Also
fixes a build problem with xe.
Signed-off-by: Thomas Zimmermann <[email protected]>
Diffstat (limited to 'drivers/gpu/drm/scheduler/sched_main.c')
| -rw-r--r-- | drivers/gpu/drm/scheduler/sched_main.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c index 1abbcdf38430..8acbef7ae53d 100644 --- a/drivers/gpu/drm/scheduler/sched_main.c +++ b/drivers/gpu/drm/scheduler/sched_main.c @@ -1178,21 +1178,20 @@ static void drm_sched_run_job_work(struct work_struct *w) struct drm_sched_entity *entity; struct dma_fence *fence; struct drm_sched_fence *s_fence; - struct drm_sched_job *sched_job; + struct drm_sched_job *sched_job = NULL; int r; if (READ_ONCE(sched->pause_submit)) return; - entity = drm_sched_select_entity(sched); + /* Find entity with a ready job */ + while (!sched_job && (entity = drm_sched_select_entity(sched))) { + sched_job = drm_sched_entity_pop_job(entity); + if (!sched_job) + complete_all(&entity->entity_idle); + } if (!entity) - return; - - sched_job = drm_sched_entity_pop_job(entity); - if (!sched_job) { - complete_all(&entity->entity_idle); return; /* No more work */ - } s_fence = sched_job->s_fence; |
