wait_info
struct wait_info *winfo = timer_container_of(winfo, t, timer);
static void init_wait_info(struct wait_info *winfo)
static int wait_satisfied(struct wait_info *winfo, struct gpib_status_queue *status_queue,
static void start_wait_timer(struct wait_info *winfo)
static void remove_wait_timer(struct wait_info *winfo)
struct wait_info winfo;
struct drm_amdgpu_userq_wait *wait_info = data;
if (wait_info->num_syncobj_handles > AMDGPU_USERQ_MAX_HANDLES ||
wait_info->num_bo_write_handles > AMDGPU_USERQ_MAX_HANDLES ||
wait_info->num_bo_read_handles > AMDGPU_USERQ_MAX_HANDLES)
num_read_bo_handles = wait_info->num_bo_read_handles;
bo_handles_read = memdup_user(u64_to_user_ptr(wait_info->bo_read_handles),
num_write_bo_handles = wait_info->num_bo_write_handles;
bo_handles_write = memdup_user(u64_to_user_ptr(wait_info->bo_write_handles),
num_syncobj = wait_info->num_syncobj_handles;
syncobj_handles = memdup_user(u64_to_user_ptr(wait_info->syncobj_handles),
num_points = wait_info->num_syncobj_timeline_handles;
timeline_handles = memdup_user(u64_to_user_ptr(wait_info->syncobj_timeline_handles),
timeline_points = memdup_user(u64_to_user_ptr(wait_info->syncobj_timeline_points),
if (!wait_info->num_fences) {
wait_info->num_fences = num_fences;
fence_info = kmalloc_array(wait_info->num_fences, sizeof(*fence_info), GFP_KERNEL);
fences = kmalloc_array(wait_info->num_fences, sizeof(*fences), GFP_KERNEL);
if (num_fences >= wait_info->num_fences) {
if (num_fences >= wait_info->num_fences) {
if (num_fences >= wait_info->num_fences) {
if (num_fences >= wait_info->num_fences) {
waitq = amdgpu_userq_get(userq_mgr, wait_info->waitq_id);
wait_info->num_fences = cnt;
if (copy_to_user(u64_to_user_ptr(wait_info->out_fences),
fence_info, wait_info->num_fences * sizeof(*fence_info))) {
struct dpu_encoder_wait_info *wait_info)
if (!wait_info) {
atomic_read(wait_info->atomic_cnt));
wait_info);
atomic_read(wait_info->atomic_cnt));
atomic_read(wait_info->atomic_cnt));
atomic_read(wait_info->atomic_cnt));
struct dpu_encoder_wait_info *wait_info);
struct dpu_encoder_wait_info wait_info;
wait_info.wq = &phys_enc->pending_kickoff_wq;
wait_info.atomic_cnt = &phys_enc->pending_kickoff_cnt;
wait_info.timeout_ms = KICKOFF_TIMEOUT_MS;
&wait_info);
struct dpu_encoder_wait_info wait_info;
wait_info.wq = &phys_enc->pending_kickoff_wq;
wait_info.atomic_cnt = &phys_enc->pending_ctlstart_cnt;
wait_info.timeout_ms = KICKOFF_TIMEOUT_MS;
&wait_info);
struct dpu_encoder_wait_info wait_info;
wait_info.wq = &phys_enc->pending_kickoff_wq;
wait_info.atomic_cnt = &phys_enc->pending_kickoff_cnt;
wait_info.timeout_ms = KICKOFF_TIMEOUT_MS;
&wait_info);
struct dpu_encoder_wait_info wait_info;
wait_info.wq = &phys_enc->pending_kickoff_wq;
wait_info.atomic_cnt = &phys_enc->pending_kickoff_cnt;
wait_info.timeout_ms = KICKOFF_TIMEOUT_MS;
dpu_encoder_phys_wb_done_irq, &wait_info);