Lines Matching refs:cplt

699 struct ssam_event_queue *ssam_cplt_get_event_queue(struct ssam_cplt *cplt,  in ssam_cplt_get_event_queue()  argument
706 dev_err(cplt->dev, "event: unsupported request ID: %#06x\n", rqid); in ssam_cplt_get_event_queue()
711 dev_warn(cplt->dev, "event: unsupported target ID: %u\n", tid); in ssam_cplt_get_event_queue()
715 return &cplt->event.target[tidx].queue[event]; in ssam_cplt_get_event_queue()
723 static bool ssam_cplt_submit(struct ssam_cplt *cplt, struct work_struct *work) in ssam_cplt_submit() argument
725 return queue_work(cplt->wq, work); in ssam_cplt_submit()
740 static int ssam_cplt_submit_event(struct ssam_cplt *cplt, in ssam_cplt_submit_event() argument
745 evq = ssam_cplt_get_event_queue(cplt, item->event.target_id, item->rqid); in ssam_cplt_submit_event()
750 ssam_cplt_submit(cplt, &evq->work); in ssam_cplt_submit_event()
771 static void ssam_cplt_flush(struct ssam_cplt *cplt) in ssam_cplt_flush() argument
773 flush_workqueue(cplt->wq); in ssam_cplt_flush()
785 nf = &queue->cplt->event.notif; in ssam_event_queue_work_fn()
786 dev = queue->cplt->dev; in ssam_event_queue_work_fn()
799 ssam_cplt_submit(queue->cplt, &queue->work); in ssam_event_queue_work_fn()
807 static void ssam_event_queue_init(struct ssam_cplt *cplt, in ssam_event_queue_init() argument
810 evq->cplt = cplt; in ssam_event_queue_init()
821 static int ssam_cplt_init(struct ssam_cplt *cplt, struct device *dev) in ssam_cplt_init() argument
826 cplt->dev = dev; in ssam_cplt_init()
828 cplt->wq = create_workqueue(SSAM_CPLT_WQ_NAME); in ssam_cplt_init()
829 if (!cplt->wq) in ssam_cplt_init()
832 for (c = 0; c < ARRAY_SIZE(cplt->event.target); c++) { in ssam_cplt_init()
833 target = &cplt->event.target[c]; in ssam_cplt_init()
836 ssam_event_queue_init(cplt, &target->queue[i]); in ssam_cplt_init()
839 status = ssam_nf_init(&cplt->event.notif); in ssam_cplt_init()
841 destroy_workqueue(cplt->wq); in ssam_cplt_init()
853 static void ssam_cplt_destroy(struct ssam_cplt *cplt) in ssam_cplt_destroy() argument
861 destroy_workqueue(cplt->wq); in ssam_cplt_destroy()
862 ssam_nf_destroy(&cplt->event.notif); in ssam_cplt_destroy()
1002 if (WARN_ON(ssam_cplt_submit_event(&ctrl->cplt, item))) in ssam_handle_event()
1195 status = ssam_cplt_init(&ctrl->cplt, &serdev->dev); in ssam_controller_init()
1202 ssam_cplt_destroy(&ctrl->cplt); in ssam_controller_init()
1305 ssam_cplt_flush(&ctrl->cplt); in ssam_controller_shutdown()
1368 ssam_cplt_destroy(&ctrl->cplt); in ssam_controller_destroy()
2176 struct ssam_nf *nf = &ctrl->cplt.event.notif; in ssam_nf_refcount_enable()
2230 struct ssam_nf *nf = &ctrl->cplt.event.notif; in ssam_nf_refcount_disable_free()
2286 nf = &ctrl->cplt.event.notif; in ssam_notifier_register()
2349 nf = &ctrl->cplt.event.notif; in ssam_notifier_unregister()
2414 struct ssam_nf *nf = &ctrl->cplt.event.notif; in ssam_controller_event_enable()
2465 struct ssam_nf *nf = &ctrl->cplt.event.notif; in ssam_controller_event_disable()
2510 struct ssam_nf *nf = &ctrl->cplt.event.notif; in ssam_notifier_disable_registered()
2555 struct ssam_nf *nf = &ctrl->cplt.event.notif; in ssam_notifier_restore_registered()
2579 struct ssam_nf *nf = &ctrl->cplt.event.notif; in ssam_notifier_is_empty()
2600 struct ssam_nf *nf = &ctrl->cplt.event.notif; in ssam_notifier_unregister_all()