Lines Matching refs:p_ent

62 			   struct qed_spq_entry *p_ent,  in __qed_spq_block()  argument
68 comp_done = (struct qed_spq_comp_done *)p_ent->comp_cb.cookie; in __qed_spq_block()
90 struct qed_spq_entry *p_ent, in qed_spq_block() argument
101 rc = __qed_spq_block(p_hwfn, p_ent, p_fw_ret, false); in qed_spq_block()
107 rc = __qed_spq_block(p_hwfn, p_ent, p_fw_ret, true); in qed_spq_block()
126 rc = __qed_spq_block(p_hwfn, p_ent, p_fw_ret, true); in qed_spq_block()
130 comp_done = (struct qed_spq_comp_done *)p_ent->comp_cb.cookie; in qed_spq_block()
142 le32_to_cpu(p_ent->elem.hdr.cid), in qed_spq_block()
143 p_ent->elem.hdr.cmd_id, in qed_spq_block()
144 p_ent->elem.hdr.protocol_id, in qed_spq_block()
145 le16_to_cpu(p_ent->elem.hdr.echo)); in qed_spq_block()
155 struct qed_spq_entry *p_ent) in qed_spq_fill_entry() argument
157 p_ent->flags = 0; in qed_spq_fill_entry()
159 switch (p_ent->comp_mode) { in qed_spq_fill_entry()
162 p_ent->comp_cb.function = qed_spq_blocking_cb; in qed_spq_fill_entry()
168 p_ent->comp_mode); in qed_spq_fill_entry()
174 p_ent->elem.hdr.cid, in qed_spq_fill_entry()
175 p_ent->elem.hdr.cmd_id, in qed_spq_fill_entry()
176 p_ent->elem.hdr.protocol_id, in qed_spq_fill_entry()
177 p_ent->elem.data_ptr.hi, in qed_spq_fill_entry()
178 p_ent->elem.data_ptr.lo, in qed_spq_fill_entry()
179 D_TRINE(p_ent->comp_mode, QED_SPQ_MODE_EBLOCK, in qed_spq_fill_entry()
230 struct qed_spq *p_spq, struct qed_spq_entry *p_ent) in qed_spq_hw_post() argument
237 p_ent->elem.hdr.echo = cpu_to_le16(echo); in qed_spq_hw_post()
244 *elem = p_ent->elem; /* struct assignment */ in qed_spq_hw_post()
616 struct qed_spq_entry *p_ent = NULL; in qed_spq_get_entry() local
622 p_ent = kzalloc(sizeof(*p_ent), GFP_ATOMIC); in qed_spq_get_entry()
623 if (!p_ent) { in qed_spq_get_entry()
629 p_ent->queue = &p_spq->unlimited_pending; in qed_spq_get_entry()
631 p_ent = list_first_entry(&p_spq->free_pool, in qed_spq_get_entry()
633 list_del(&p_ent->list); in qed_spq_get_entry()
634 p_ent->queue = &p_spq->pending; in qed_spq_get_entry()
637 *pp_ent = p_ent; in qed_spq_get_entry()
646 struct qed_spq_entry *p_ent) in __qed_spq_return_entry() argument
648 list_add_tail(&p_ent->list, &p_hwfn->p_spq->free_pool); in __qed_spq_return_entry()
651 void qed_spq_return_entry(struct qed_hwfn *p_hwfn, struct qed_spq_entry *p_ent) in qed_spq_return_entry() argument
654 __qed_spq_return_entry(p_hwfn, p_ent); in qed_spq_return_entry()
673 struct qed_spq_entry *p_ent, in qed_spq_add_entry() argument
678 if (p_ent->queue == &p_spq->unlimited_pending) { in qed_spq_add_entry()
681 list_add_tail(&p_ent->list, &p_spq->unlimited_pending); in qed_spq_add_entry()
696 p_ent->elem.data_ptr = p_en2->elem.data_ptr; in qed_spq_add_entry()
698 *p_en2 = *p_ent; in qed_spq_add_entry()
701 if (p_ent->comp_mode != QED_SPQ_MODE_EBLOCK) in qed_spq_add_entry()
702 kfree(p_ent); in qed_spq_add_entry()
704 p_ent->post_ent = p_en2; in qed_spq_add_entry()
706 p_ent = p_en2; in qed_spq_add_entry()
713 list_add_tail(&p_ent->list, &p_spq->pending); in qed_spq_add_entry()
717 list_add(&p_ent->list, &p_spq->pending); in qed_spq_add_entry()
748 struct qed_spq_entry *p_ent = in qed_spq_post_list() local
750 list_move_tail(&p_ent->list, &p_spq->completion_pending); in qed_spq_post_list()
753 rc = qed_spq_hw_post(p_hwfn, p_spq, p_ent); in qed_spq_post_list()
755 list_del(&p_ent->list); in qed_spq_post_list()
756 __qed_spq_return_entry(p_hwfn, p_ent); in qed_spq_post_list()
767 struct qed_spq_entry *p_ent = NULL; in qed_spq_pend_post() local
773 p_ent = list_first_entry(&p_spq->unlimited_pending, in qed_spq_pend_post()
775 if (!p_ent) in qed_spq_pend_post()
778 list_del(&p_ent->list); in qed_spq_pend_post()
780 qed_spq_add_entry(p_hwfn, p_ent, p_ent->priority); in qed_spq_pend_post()
787 static void qed_spq_recov_set_ret_code(struct qed_spq_entry *p_ent, in qed_spq_recov_set_ret_code() argument
793 if (p_ent->elem.hdr.protocol_id == PROTOCOLID_ROCE || in qed_spq_recov_set_ret_code()
794 p_ent->elem.hdr.protocol_id == PROTOCOLID_IWARP) in qed_spq_recov_set_ret_code()
818 struct qed_spq_entry *p_ent, u8 *fw_return_code) in qed_spq_post() argument
828 if (!p_ent) { in qed_spq_post()
837 p_ent->elem.hdr.cmd_id, p_ent->elem.hdr.protocol_id); in qed_spq_post()
840 qed_spq_recov_set_ret_code(p_ent, fw_return_code); in qed_spq_post()
845 rc = qed_spq_fill_entry(p_hwfn, p_ent); in qed_spq_post()
856 eblock = (p_ent->comp_mode == QED_SPQ_MODE_EBLOCK); in qed_spq_post()
859 rc = qed_spq_add_entry(p_hwfn, p_ent, p_ent->priority); in qed_spq_post()
881 rc = qed_spq_block(p_hwfn, p_ent, fw_return_code, in qed_spq_post()
882 p_ent->queue == &p_spq->unlimited_pending); in qed_spq_post()
884 if (p_ent->queue == &p_spq->unlimited_pending) { in qed_spq_post()
885 struct qed_spq_entry *p_post_ent = p_ent->post_ent; in qed_spq_post()
887 kfree(p_ent); in qed_spq_post()
890 p_ent = p_post_ent; in qed_spq_post()
897 qed_spq_return_entry(p_hwfn, p_ent); in qed_spq_post()
903 list_del(&p_ent->list); in qed_spq_post()
904 qed_spq_comp_bmap_update(p_hwfn, p_ent->elem.hdr.echo); in qed_spq_post()
909 __qed_spq_return_entry(p_hwfn, p_ent); in qed_spq_post()
921 struct qed_spq_entry *p_ent = NULL; in qed_spq_completion() local
933 list_for_each_entry_safe(p_ent, tmp, &p_spq->completion_pending, list) { in qed_spq_completion()
934 if (p_ent->elem.hdr.echo == echo) { in qed_spq_completion()
935 list_del(&p_ent->list); in qed_spq_completion()
938 found = p_ent; in qed_spq_completion()
948 le16_to_cpu(p_ent->elem.hdr.echo)); in qed_spq_completion()
966 p_ent->comp_cb.function, p_ent->comp_cb.cookie); in qed_spq_completion()