aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/scheduler/gpu_scheduler.h')
-rw-r--r--drivers/gpu/drm/amd/scheduler/gpu_scheduler.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
index d8dc681bcda6..924d4a5899e1 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
@@ -80,6 +80,7 @@ struct amd_sched_job {
struct work_struct finish_work;
struct list_head node;
struct delayed_work work_tdr;
+ uint64_t id;
};
extern const struct dma_fence_ops amd_sched_fence_ops_scheduled;
@@ -107,9 +108,10 @@ struct amd_sched_backend_ops {
};
enum amd_sched_priority {
- AMD_SCHED_PRIORITY_KERNEL = 0,
- AMD_SCHED_PRIORITY_NORMAL,
- AMD_SCHED_MAX_PRIORITY
+ AMD_SCHED_PRIORITY_MIN,
+ AMD_SCHED_PRIORITY_NORMAL = AMD_SCHED_PRIORITY_MIN,
+ AMD_SCHED_PRIORITY_KERNEL,
+ AMD_SCHED_PRIORITY_MAX
};
/**
@@ -120,10 +122,11 @@ struct amd_gpu_scheduler {
uint32_t hw_submission_limit;
long timeout;
const char *name;
- struct amd_sched_rq sched_rq[AMD_SCHED_MAX_PRIORITY];
+ struct amd_sched_rq sched_rq[AMD_SCHED_PRIORITY_MAX];
wait_queue_head_t wake_up_worker;
wait_queue_head_t job_scheduled;
atomic_t hw_rq_count;
+ atomic64_t job_id_count;
struct task_struct *thread;
struct list_head ring_mirror_list;
spinlock_t job_list_lock;
@@ -155,4 +158,6 @@ int amd_sched_job_init(struct amd_sched_job *job,
void *owner);
void amd_sched_hw_job_reset(struct amd_gpu_scheduler *sched);
void amd_sched_job_recovery(struct amd_gpu_scheduler *sched);
+bool amd_sched_dependency_optimized(struct dma_fence* fence,
+ struct amd_sched_entity *entity);
#endif