Lines Matching refs:src
131 struct amdgpu_irq_src *src = adev->irq.client[i].sources[j]; in amdgpu_irq_disable_all() local
133 if (!src || !src->funcs->set || !src->num_types) in amdgpu_irq_disable_all()
136 for (k = 0; k < src->num_types; ++k) { in amdgpu_irq_disable_all()
137 atomic_set(&src->enabled_types[k], 0); in amdgpu_irq_disable_all()
138 r = src->funcs->set(adev, src, k, in amdgpu_irq_disable_all()
289 struct amdgpu_irq_src *src = adev->irq.client[i].sources[j]; in amdgpu_irq_fini() local
291 if (!src) in amdgpu_irq_fini()
294 kfree(src->enabled_types); in amdgpu_irq_fini()
295 src->enabled_types = NULL; in amdgpu_irq_fini()
296 if (src->data) { in amdgpu_irq_fini()
297 kfree(src->data); in amdgpu_irq_fini()
298 kfree(src); in amdgpu_irq_fini()
373 struct amdgpu_irq_src *src; in amdgpu_irq_dispatch() local
401 src = adev->irq.client[client_id].sources[src_id]; in amdgpu_irq_dispatch()
402 if (!src) { in amdgpu_irq_dispatch()
407 r = src->funcs->process(adev, src, entry); in amdgpu_irq_dispatch()
423 struct amdgpu_irq_src *src, unsigned type) in amdgpu_irq_update() argument
433 if (amdgpu_irq_enabled(adev, src, type)) in amdgpu_irq_update()
438 r = src->funcs->set(adev, src, type, state); in amdgpu_irq_update()
460 struct amdgpu_irq_src *src = adev->irq.client[i].sources[j]; in amdgpu_irq_gpu_reset_resume_helper() local
462 if (!src || !src->funcs || !src->funcs->set) in amdgpu_irq_gpu_reset_resume_helper()
464 for (k = 0; k < src->num_types; k++) in amdgpu_irq_gpu_reset_resume_helper()
465 amdgpu_irq_update(adev, src, k); in amdgpu_irq_gpu_reset_resume_helper()
482 int amdgpu_irq_get(struct amdgpu_device *adev, struct amdgpu_irq_src *src, in amdgpu_irq_get() argument
488 if (type >= src->num_types) in amdgpu_irq_get()
491 if (!src->enabled_types || !src->funcs->set) in amdgpu_irq_get()
494 if (atomic_inc_return(&src->enabled_types[type]) == 1) in amdgpu_irq_get()
495 return amdgpu_irq_update(adev, src, type); in amdgpu_irq_get()
512 int amdgpu_irq_put(struct amdgpu_device *adev, struct amdgpu_irq_src *src, in amdgpu_irq_put() argument
518 if (type >= src->num_types) in amdgpu_irq_put()
521 if (!src->enabled_types || !src->funcs->set) in amdgpu_irq_put()
524 if (atomic_dec_and_test(&src->enabled_types[type])) in amdgpu_irq_put()
525 return amdgpu_irq_update(adev, src, type); in amdgpu_irq_put()
543 bool amdgpu_irq_enabled(struct amdgpu_device *adev, struct amdgpu_irq_src *src, in amdgpu_irq_enabled() argument
549 if (type >= src->num_types) in amdgpu_irq_enabled()
552 if (!src->enabled_types || !src->funcs->set) in amdgpu_irq_enabled()
555 return !!atomic_read(&src->enabled_types[type]); in amdgpu_irq_enabled()