Lines Matching +full:re +full:- +full:sending

5  * SPDX-License-Identifier: Apache-2.0
28 return k_work_submit_to_queue(&i3c_ibi_work_q, &ibi_node->work); in ibi_work_submit()
39 ret = -ENOMEM; in i3c_ibi_work_enqueue()
65 ret = -ENOMEM; in i3c_ibi_work_enqueue_target_irq()
71 ibi_node->type = I3C_IBI_TARGET_INTR; in i3c_ibi_work_enqueue_target_irq()
72 ibi_node->target = target; in i3c_ibi_work_enqueue_target_irq()
73 ibi_node->payload.payload_len = payload_len; in i3c_ibi_work_enqueue_target_irq()
76 (void)memcpy(&ibi_node->payload.payload[0], in i3c_ibi_work_enqueue_target_irq()
97 ret = -ENOMEM; in i3c_ibi_work_enqueue_hotjoin()
103 ibi_node->type = I3C_IBI_HOTJOIN; in i3c_ibi_work_enqueue_hotjoin()
104 ibi_node->controller = dev; in i3c_ibi_work_enqueue_hotjoin()
105 ibi_node->payload.payload_len = 0; in i3c_ibi_work_enqueue_hotjoin()
125 ret = -ENOMEM; in i3c_ibi_work_enqueue_cb()
131 ibi_node->type = I3C_IBI_WORKQUEUE_CB; in i3c_ibi_work_enqueue_cb()
132 ibi_node->controller = dev; in i3c_ibi_work_enqueue_cb()
133 ibi_node->work_cb = work_cb; in i3c_ibi_work_enqueue_cb()
151 ((uint32_t)ibi_node->type <= I3C_IBI_TYPE_MAX)) { in i3c_ibi_work_handler()
153 ibi_node, (int)ibi_node->type, in i3c_ibi_work_handler()
154 ibi_node->payload.payload_len); in i3c_ibi_work_handler()
156 if (ibi_node->payload.payload_len > 0U) { in i3c_ibi_work_handler()
157 LOG_HEXDUMP_DBG(&ibi_node->payload.payload[0], in i3c_ibi_work_handler()
158 ibi_node->payload.payload_len, "IBI Payload"); in i3c_ibi_work_handler()
162 switch (ibi_node->type) { in i3c_ibi_work_handler()
164 if (ibi_node->payload.payload_len != 0U) { in i3c_ibi_work_handler()
165 payload = &ibi_node->payload; in i3c_ibi_work_handler()
170 ret = ibi_node->target->ibi_cb(ibi_node->target, payload); in i3c_ibi_work_handler()
171 if ((ret != 0) && (ret != -EBUSY)) { in i3c_ibi_work_handler()
177 ret = i3c_do_daa(ibi_node->controller); in i3c_ibi_work_handler()
178 if ((ret != 0) && (ret != -EBUSY)) { in i3c_ibi_work_handler()
182 if (i3c_bus_has_sec_controller(ibi_node->controller)) { in i3c_ibi_work_handler()
183 ret = i3c_bus_deftgts(ibi_node->controller); in i3c_ibi_work_handler()
185 LOG_ERR("Error sending DEFTGTS"); in i3c_ibi_work_handler()
191 if (ibi_node->work_cb != NULL) { in i3c_ibi_work_handler()
192 ibi_node->work_cb(work); in i3c_ibi_work_handler()
202 LOG_DBG("Cannot process IBI type %d", (int)ibi_node->type); in i3c_ibi_work_handler()
206 if (ret == -EBUSY) { in i3c_ibi_work_handler()
209 LOG_ERR("Error re-adding IBI work %p", ibi_node); in i3c_ibi_work_handler()