# GPU scheduler
amdgpu-y += \
- ../scheduler/gpu_scheduler.o
+ ../scheduler/gpu_scheduler.o \
+ amdgpu_sched.o
amdgpu-$(CONFIG_COMPAT) += amdgpu_ioc32.o
amdgpu-$(CONFIG_VGA_SWITCHEROO) += amdgpu_atpx_handler.o
struct amdgpu_bo *bo;
/* write-back address offset to bo start */
uint32_t offset;
+ uint64_t sequence;
};
int amdgpu_fence_driver_init(struct amdgpu_device *adev);
AMDGPU_RING_TYPE_VCE
};
+extern struct amd_sched_backend_ops amdgpu_sched_ops;
+
struct amdgpu_ring {
struct amdgpu_device *adev;
const struct amdgpu_ring_funcs *funcs;
/* user fence */
struct amdgpu_user_fence uf;
+
+ struct mutex job_lock;
+ struct work_struct job_work;
+ int (*prepare_job)(struct amdgpu_cs_parser *sched_job);
+ int (*run_job)(struct amdgpu_cs_parser *sched_job);
};
static inline u32 amdgpu_get_ib_value(struct amdgpu_cs_parser *p, uint32_t ib_idx, int idx)