Lines Matching refs:minfo
364 static int scmi_xfer_token_set(struct scmi_xfers_info *minfo, in scmi_xfer_token_set() argument
380 xfer_id = find_next_zero_bit(minfo->xfer_alloc_table, in scmi_xfer_token_set()
388 xfer_id = find_next_zero_bit(minfo->xfer_alloc_table, in scmi_xfer_token_set()
414 static inline void scmi_xfer_token_clear(struct scmi_xfers_info *minfo, in scmi_xfer_token_clear() argument
417 clear_bit(xfer->hdr.seq, minfo->xfer_alloc_table); in scmi_xfer_token_clear()
434 struct scmi_xfers_info *minfo) in scmi_xfer_inflight_register_unlocked() argument
437 set_bit(xfer->hdr.seq, minfo->xfer_alloc_table); in scmi_xfer_inflight_register_unlocked()
438 hash_add(minfo->pending_xfers, &xfer->node, xfer->hdr.seq); in scmi_xfer_inflight_register_unlocked()
457 struct scmi_xfers_info *minfo) in scmi_xfer_inflight_register() argument
462 spin_lock_irqsave(&minfo->xfer_lock, flags); in scmi_xfer_inflight_register()
463 if (!test_bit(xfer->hdr.seq, minfo->xfer_alloc_table)) in scmi_xfer_inflight_register()
464 scmi_xfer_inflight_register_unlocked(xfer, minfo); in scmi_xfer_inflight_register()
467 spin_unlock_irqrestore(&minfo->xfer_lock, flags); in scmi_xfer_inflight_register()
499 struct scmi_xfers_info *minfo) in scmi_xfer_pending_set() argument
504 spin_lock_irqsave(&minfo->xfer_lock, flags); in scmi_xfer_pending_set()
506 ret = scmi_xfer_token_set(minfo, xfer); in scmi_xfer_pending_set()
508 scmi_xfer_inflight_register_unlocked(xfer, minfo); in scmi_xfer_pending_set()
509 spin_unlock_irqrestore(&minfo->xfer_lock, flags); in scmi_xfer_pending_set()
536 struct scmi_xfers_info *minfo) in scmi_xfer_get() argument
541 spin_lock_irqsave(&minfo->xfer_lock, flags); in scmi_xfer_get()
542 if (hlist_empty(&minfo->free_xfers)) { in scmi_xfer_get()
543 spin_unlock_irqrestore(&minfo->xfer_lock, flags); in scmi_xfer_get()
548 xfer = hlist_entry(minfo->free_xfers.first, struct scmi_xfer, node); in scmi_xfer_get()
559 spin_unlock_irqrestore(&minfo->xfer_lock, flags); in scmi_xfer_get()
633 __scmi_xfer_put(struct scmi_xfers_info *minfo, struct scmi_xfer *xfer) in __scmi_xfer_put() argument
637 spin_lock_irqsave(&minfo->xfer_lock, flags); in __scmi_xfer_put()
640 scmi_xfer_token_clear(minfo, xfer); in __scmi_xfer_put()
644 hlist_add_head(&xfer->node, &minfo->free_xfers); in __scmi_xfer_put()
646 spin_unlock_irqrestore(&minfo->xfer_lock, flags); in __scmi_xfer_put()
680 scmi_xfer_lookup_unlocked(struct scmi_xfers_info *minfo, u16 xfer_id) in scmi_xfer_lookup_unlocked() argument
684 if (test_bit(xfer_id, minfo->xfer_alloc_table)) in scmi_xfer_lookup_unlocked()
685 xfer = XFER_FIND(minfo->pending_xfers, xfer_id); in scmi_xfer_lookup_unlocked()
804 struct scmi_xfers_info *minfo = &info->tx_minfo; in scmi_xfer_command_acquire() local
809 spin_lock_irqsave(&minfo->xfer_lock, flags); in scmi_xfer_command_acquire()
810 xfer = scmi_xfer_lookup_unlocked(minfo, xfer_id); in scmi_xfer_command_acquire()
815 spin_unlock_irqrestore(&minfo->xfer_lock, flags); in scmi_xfer_command_acquire()
819 spin_unlock_irqrestore(&minfo->xfer_lock, flags); in scmi_xfer_command_acquire()
841 __scmi_xfer_put(minfo, xfer); in scmi_xfer_command_acquire()
868 struct scmi_xfers_info *minfo = &info->rx_minfo; in scmi_handle_notification() local
872 xfer = scmi_xfer_get(cinfo->handle, minfo); in scmi_handle_notification()
904 __scmi_xfer_put(minfo, xfer); in scmi_handle_notification()
1325 struct scmi_xfers_info *minfo = &info->tx_minfo; in xfer_get_init() local
1333 xfer = scmi_xfer_get(pi->handle, minfo); in xfer_get_init()
1341 ret = scmi_xfer_pending_set(xfer, minfo); in xfer_get_init()
1345 __scmi_xfer_put(minfo, xfer); in xfer_get_init()