Lines Matching refs:cmdnode
209 struct cmd_ctrl_node *cmdnode) in lbtf_queue_cmd() argument
214 if (!cmdnode) { in lbtf_queue_cmd()
219 if (!cmdnode->cmdbuf->size) { in lbtf_queue_cmd()
224 cmdnode->result = 0; in lbtf_queue_cmd()
226 list_add_tail(&cmdnode->list, &priv->cmdpendingq); in lbtf_queue_cmd()
230 le16_to_cpu(cmdnode->cmdbuf->command)); in lbtf_queue_cmd()
237 struct cmd_ctrl_node *cmdnode) in lbtf_submit_command() argument
248 cmd = cmdnode->cmdbuf; in lbtf_submit_command()
251 priv->cur_cmd = cmdnode; in lbtf_submit_command()
257 lbtf_deb_hex(LBTF_DEB_CMD, "DNLD_CMD", (void *) cmdnode->cmdbuf, cmdsize); in lbtf_submit_command()
280 struct cmd_ctrl_node *cmdnode) in __lbtf_cleanup_and_insert_cmd() argument
284 if (!cmdnode) in __lbtf_cleanup_and_insert_cmd()
287 cmdnode->callback = NULL; in __lbtf_cleanup_and_insert_cmd()
288 cmdnode->callback_arg = 0; in __lbtf_cleanup_and_insert_cmd()
290 memset(cmdnode->cmdbuf, 0, LBS_CMD_BUFFER_SIZE); in __lbtf_cleanup_and_insert_cmd()
292 list_add_tail(&cmdnode->list, &priv->cmdfreeq); in __lbtf_cleanup_and_insert_cmd()
566 struct cmd_ctrl_node *cmdnode = NULL; in lbtf_execute_next_command() local
586 cmdnode = list_first_entry(&priv->cmdpendingq, in lbtf_execute_next_command()
590 if (cmdnode) { in lbtf_execute_next_command()
591 cmd = cmdnode->cmdbuf; in lbtf_execute_next_command()
593 list_del(&cmdnode->list); in lbtf_execute_next_command()
597 lbtf_submit_command(priv, cmdnode); in lbtf_execute_next_command()
613 struct cmd_ctrl_node *cmdnode; in __lbtf_cmd_async() local
619 cmdnode = ERR_PTR(-ENOENT); in __lbtf_cmd_async()
623 cmdnode = lbtf_get_cmd_ctrl_node(priv); in __lbtf_cmd_async()
624 if (cmdnode == NULL) { in __lbtf_cmd_async()
629 cmdnode = ERR_PTR(-ENOBUFS); in __lbtf_cmd_async()
633 cmdnode->callback = callback; in __lbtf_cmd_async()
634 cmdnode->callback_arg = callback_arg; in __lbtf_cmd_async()
637 memcpy(cmdnode->cmdbuf, in_cmd, in_cmd_size); in __lbtf_cmd_async()
641 cmdnode->cmdbuf->command = cpu_to_le16(command); in __lbtf_cmd_async()
642 cmdnode->cmdbuf->size = cpu_to_le16(in_cmd_size); in __lbtf_cmd_async()
643 cmdnode->cmdbuf->seqnum = cpu_to_le16(priv->seqnum); in __lbtf_cmd_async()
644 cmdnode->cmdbuf->result = 0; in __lbtf_cmd_async()
648 cmdnode->cmdwaitqwoken = 0; in __lbtf_cmd_async()
649 lbtf_queue_cmd(priv, cmdnode); in __lbtf_cmd_async()
653 lbtf_deb_leave_args(LBTF_DEB_HOST, "ret %p", cmdnode); in __lbtf_cmd_async()
654 return cmdnode; in __lbtf_cmd_async()
671 struct cmd_ctrl_node *cmdnode; in __lbtf_cmd() local
677 cmdnode = __lbtf_cmd_async(priv, command, in_cmd, in_cmd_size, in __lbtf_cmd()
679 if (IS_ERR(cmdnode)) { in __lbtf_cmd()
680 ret = PTR_ERR(cmdnode); in __lbtf_cmd()
685 ret = wait_event_interruptible(cmdnode->cmdwait_q, in __lbtf_cmd()
686 cmdnode->cmdwaitqwoken); in __lbtf_cmd()
694 ret = cmdnode->result; in __lbtf_cmd()
699 __lbtf_cleanup_and_insert_cmd(priv, cmdnode); in __lbtf_cmd()