Lines Matching refs:cmd

141 virtio_snd_ctrl_cmd_free(virtio_snd_ctrl_command *cmd)  in virtio_snd_ctrl_cmd_free()  argument
143 g_free(cmd->elem); in virtio_snd_ctrl_cmd_free()
144 g_free(cmd); in virtio_snd_ctrl_cmd_free()
182 virtio_snd_ctrl_command *cmd) in virtio_snd_handle_pcm_info() argument
189 size_t msg_sz = iov_to_buf(cmd->elem->out_sg, in virtio_snd_handle_pcm_info()
190 cmd->elem->out_num, in virtio_snd_handle_pcm_info()
202 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in virtio_snd_handle_pcm_info()
210 if (iov_size(cmd->elem->in_sg, cmd->elem->in_num) < in virtio_snd_handle_pcm_info()
216 iov_size(cmd->elem->in_sg, cmd->elem->in_num), in virtio_snd_handle_pcm_info()
218 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in virtio_snd_handle_pcm_info()
229 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in virtio_snd_handle_pcm_info()
246 cmd->payload_size = sizeof(virtio_snd_pcm_info) * count; in virtio_snd_handle_pcm_info()
247 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_OK); in virtio_snd_handle_pcm_info()
248 iov_from_buf(cmd->elem->in_sg, in virtio_snd_handle_pcm_info()
249 cmd->elem->in_num, in virtio_snd_handle_pcm_info()
252 cmd->payload_size); in virtio_snd_handle_pcm_info()
314 virtio_snd_ctrl_command *cmd) in virtio_snd_handle_pcm_set_params() argument
318 size_t msg_sz = iov_to_buf(cmd->elem->out_sg, in virtio_snd_handle_pcm_set_params()
319 cmd->elem->out_num, in virtio_snd_handle_pcm_set_params()
331 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in virtio_snd_handle_pcm_set_params()
336 cmd->resp.code = virtio_snd_set_pcm_params(s, stream_id, &req); in virtio_snd_handle_pcm_set_params()
535 virtio_snd_ctrl_command *cmd) in virtio_snd_handle_pcm_prepare() argument
538 size_t msg_sz = iov_to_buf(cmd->elem->out_sg, in virtio_snd_handle_pcm_prepare()
539 cmd->elem->out_num, in virtio_snd_handle_pcm_prepare()
545 cmd->resp.code = msg_sz == sizeof(stream_id) in virtio_snd_handle_pcm_prepare()
558 virtio_snd_ctrl_command *cmd, in virtio_snd_handle_pcm_start_stop() argument
564 size_t msg_sz = iov_to_buf(cmd->elem->out_sg, in virtio_snd_handle_pcm_start_stop()
565 cmd->elem->out_num, in virtio_snd_handle_pcm_start_stop()
574 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in virtio_snd_handle_pcm_start_stop()
579 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_OK); in virtio_snd_handle_pcm_start_stop()
595 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in virtio_snd_handle_pcm_start_stop()
626 virtio_snd_ctrl_command *cmd) in virtio_snd_handle_pcm_release() argument
630 size_t msg_sz = iov_to_buf(cmd->elem->out_sg, in virtio_snd_handle_pcm_release()
631 cmd->elem->out_num, in virtio_snd_handle_pcm_release()
643 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in virtio_snd_handle_pcm_release()
658 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in virtio_snd_handle_pcm_release()
676 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_OK); in virtio_snd_handle_pcm_release()
686 process_cmd(VirtIOSound *s, virtio_snd_ctrl_command *cmd) in process_cmd() argument
689 size_t msg_sz = iov_to_buf(cmd->elem->out_sg, in process_cmd()
690 cmd->elem->out_num, in process_cmd()
692 &cmd->ctrl, in process_cmd()
705 code = le32_to_cpu(cmd->ctrl.code); in process_cmd()
714 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_NOT_SUPP); in process_cmd()
717 virtio_snd_handle_pcm_info(s, cmd); in process_cmd()
720 virtio_snd_handle_pcm_start_stop(s, cmd, true); in process_cmd()
723 virtio_snd_handle_pcm_start_stop(s, cmd, false); in process_cmd()
726 virtio_snd_handle_pcm_set_params(s, cmd); in process_cmd()
729 virtio_snd_handle_pcm_prepare(s, cmd); in process_cmd()
732 virtio_snd_handle_pcm_release(s, cmd); in process_cmd()
738 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_NOT_SUPP); in process_cmd()
743 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in process_cmd()
746 iov_from_buf(cmd->elem->in_sg, in process_cmd()
747 cmd->elem->in_num, in process_cmd()
749 &cmd->resp, in process_cmd()
751 virtqueue_push(cmd->vq, cmd->elem, in process_cmd()
752 sizeof(virtio_snd_hdr) + cmd->payload_size); in process_cmd()
753 virtio_notify(VIRTIO_DEVICE(s), cmd->vq); in process_cmd()
763 virtio_snd_ctrl_command *cmd; in virtio_snd_process_cmdq() local
772 cmd = QTAILQ_FIRST(&s->cmdq); in virtio_snd_process_cmdq()
775 process_cmd(s, cmd); in virtio_snd_process_cmdq()
777 QTAILQ_REMOVE(&s->cmdq, cmd, next); in virtio_snd_process_cmdq()
779 virtio_snd_ctrl_cmd_free(cmd); in virtio_snd_process_cmdq()
797 virtio_snd_ctrl_command *cmd; in virtio_snd_handle_ctrl() local
807 cmd = g_new0(virtio_snd_ctrl_command, 1); in virtio_snd_handle_ctrl()
808 cmd->elem = elem; in virtio_snd_handle_ctrl()
809 cmd->vq = vq; in virtio_snd_handle_ctrl()
810 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_OK); in virtio_snd_handle_ctrl()
812 QTAILQ_INSERT_TAIL(&s->cmdq, cmd, next); in virtio_snd_handle_ctrl()
1371 virtio_snd_ctrl_command *cmd; in virtio_snd_reset() local
1382 cmd = QTAILQ_FIRST(&vsnd->cmdq); in virtio_snd_reset()
1383 QTAILQ_REMOVE(&vsnd->cmdq, cmd, next); in virtio_snd_reset()
1384 virtio_snd_ctrl_cmd_free(cmd); in virtio_snd_reset()