Lines Matching refs:mb_msg
168 static int mailbox_acquire_msgid(struct mailbox_channel *mb_chann, struct mailbox_msg *mb_msg) in mailbox_acquire_msgid() argument
173 ret = xa_alloc_cyclic_irq(&mb_chann->chan_xa, &msg_id, mb_msg, in mailbox_acquire_msgid()
193 struct mailbox_msg *mb_msg) in mailbox_release_msg() argument
196 mb_msg->pkg.header.id, mb_msg->pkg.header.opcode); in mailbox_release_msg()
197 mb_msg->notify_cb(mb_msg->handle, NULL, 0); in mailbox_release_msg()
198 kfree(mb_msg); in mailbox_release_msg()
202 mailbox_send_msg(struct mailbox_channel *mb_chann, struct mailbox_msg *mb_msg) in mailbox_send_msg() argument
214 tmp_tail = tail + mb_msg->pkg_size; in mailbox_send_msg()
220 mb_msg->pkg_size >= head)) in mailbox_send_msg()
232 memcpy_toio(write_addr, &mb_msg->pkg, mb_msg->pkg_size); in mailbox_send_msg()
233 mailbox_set_tailptr(mb_chann, tail + mb_msg->pkg_size); in mailbox_send_msg()
236 mb_msg->pkg.header.opcode, in mailbox_send_msg()
237 mb_msg->pkg.header.id); in mailbox_send_msg()
249 struct mailbox_msg *mb_msg; in mailbox_get_resp() local
260 mb_msg = xa_erase_irq(&mb_chann->chan_xa, msg_id); in mailbox_get_resp()
261 if (!mb_msg) { in mailbox_get_resp()
268 ret = mb_msg->notify_cb(mb_msg->handle, data, header->total_size); in mailbox_get_resp()
272 kfree(mb_msg); in mailbox_get_resp()
402 struct mailbox_msg *mb_msg; in xdna_mailbox_send_msg() local
428 mb_msg = kzalloc(sizeof(*mb_msg) + pkg_size, GFP_KERNEL); in xdna_mailbox_send_msg()
429 if (!mb_msg) in xdna_mailbox_send_msg()
432 mb_msg->handle = msg->handle; in xdna_mailbox_send_msg()
433 mb_msg->notify_cb = msg->notify_cb; in xdna_mailbox_send_msg()
434 mb_msg->pkg_size = pkg_size; in xdna_mailbox_send_msg()
436 header = &mb_msg->pkg.header; in xdna_mailbox_send_msg()
445 memcpy(mb_msg->pkg.payload, msg->send_data, msg->send_size); in xdna_mailbox_send_msg()
447 ret = mailbox_acquire_msgid(mb_chann, mb_msg); in xdna_mailbox_send_msg()
457 ret = mailbox_send_msg(mb_chann, mb_msg); in xdna_mailbox_send_msg()
468 kfree(mb_msg); in xdna_mailbox_send_msg()
529 struct mailbox_msg *mb_msg; in xdna_mailbox_destroy_channel() local
537 xa_for_each(&mb_chann->chan_xa, msg_id, mb_msg) in xdna_mailbox_destroy_channel()
538 mailbox_release_msg(mb_chann, mb_msg); in xdna_mailbox_destroy_channel()