Lines Matching refs:minfo
261 static int scmi_xfer_token_set(struct scmi_xfers_info *minfo, in scmi_xfer_token_set() argument
277 xfer_id = find_next_zero_bit(minfo->xfer_alloc_table, in scmi_xfer_token_set()
285 xfer_id = find_next_zero_bit(minfo->xfer_alloc_table, in scmi_xfer_token_set()
301 set_bit(xfer_id, minfo->xfer_alloc_table); in scmi_xfer_token_set()
313 static inline void scmi_xfer_token_clear(struct scmi_xfers_info *minfo, in scmi_xfer_token_clear() argument
316 clear_bit(xfer->hdr.seq, minfo->xfer_alloc_table); in scmi_xfer_token_clear()
342 struct scmi_xfers_info *minfo, in scmi_xfer_get() argument
349 spin_lock_irqsave(&minfo->xfer_lock, flags); in scmi_xfer_get()
350 if (hlist_empty(&minfo->free_xfers)) { in scmi_xfer_get()
351 spin_unlock_irqrestore(&minfo->xfer_lock, flags); in scmi_xfer_get()
356 xfer = hlist_entry(minfo->free_xfers.first, struct scmi_xfer, node); in scmi_xfer_get()
367 ret = scmi_xfer_token_set(minfo, xfer); in scmi_xfer_get()
369 hash_add(minfo->pending_xfers, &xfer->node, in scmi_xfer_get()
375 hlist_add_head(&xfer->node, &minfo->free_xfers); in scmi_xfer_get()
384 spin_unlock_irqrestore(&minfo->xfer_lock, flags); in scmi_xfer_get()
401 __scmi_xfer_put(struct scmi_xfers_info *minfo, struct scmi_xfer *xfer) in __scmi_xfer_put() argument
405 spin_lock_irqsave(&minfo->xfer_lock, flags); in __scmi_xfer_put()
408 scmi_xfer_token_clear(minfo, xfer); in __scmi_xfer_put()
412 hlist_add_head(&xfer->node, &minfo->free_xfers); in __scmi_xfer_put()
414 spin_unlock_irqrestore(&minfo->xfer_lock, flags); in __scmi_xfer_put()
430 scmi_xfer_lookup_unlocked(struct scmi_xfers_info *minfo, u16 xfer_id) in scmi_xfer_lookup_unlocked() argument
434 if (test_bit(xfer_id, minfo->xfer_alloc_table)) in scmi_xfer_lookup_unlocked()
435 xfer = XFER_FIND(minfo->pending_xfers, xfer_id); in scmi_xfer_lookup_unlocked()
554 struct scmi_xfers_info *minfo = &info->tx_minfo; in scmi_xfer_command_acquire() local
559 spin_lock_irqsave(&minfo->xfer_lock, flags); in scmi_xfer_command_acquire()
560 xfer = scmi_xfer_lookup_unlocked(minfo, xfer_id); in scmi_xfer_command_acquire()
565 spin_unlock_irqrestore(&minfo->xfer_lock, flags); in scmi_xfer_command_acquire()
569 spin_unlock_irqrestore(&minfo->xfer_lock, flags); in scmi_xfer_command_acquire()
591 __scmi_xfer_put(minfo, xfer); in scmi_xfer_command_acquire()
618 struct scmi_xfers_info *minfo = &info->rx_minfo; in scmi_handle_notification() local
622 xfer = scmi_xfer_get(cinfo->handle, minfo, false); in scmi_handle_notification()
642 __scmi_xfer_put(minfo, xfer); in scmi_handle_notification()
907 struct scmi_xfers_info *minfo = &info->tx_minfo; in xfer_get_init() local
915 xfer = scmi_xfer_get(pi->handle, minfo, true); in xfer_get_init()