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()
312 virtio_snd_ctrl_command *cmd) in virtio_snd_handle_pcm_set_params() argument
316 size_t msg_sz = iov_to_buf(cmd->elem->out_sg, in virtio_snd_handle_pcm_set_params()
317 cmd->elem->out_num, in virtio_snd_handle_pcm_set_params()
329 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in virtio_snd_handle_pcm_set_params()
334 cmd->resp.code = virtio_snd_set_pcm_params(s, stream_id, &req); in virtio_snd_handle_pcm_set_params()
533 virtio_snd_ctrl_command *cmd) in virtio_snd_handle_pcm_prepare() argument
536 size_t msg_sz = iov_to_buf(cmd->elem->out_sg, in virtio_snd_handle_pcm_prepare()
537 cmd->elem->out_num, in virtio_snd_handle_pcm_prepare()
543 cmd->resp.code = msg_sz == sizeof(stream_id) in virtio_snd_handle_pcm_prepare()
556 virtio_snd_ctrl_command *cmd, in virtio_snd_handle_pcm_start_stop() argument
562 size_t msg_sz = iov_to_buf(cmd->elem->out_sg, in virtio_snd_handle_pcm_start_stop()
563 cmd->elem->out_num, in virtio_snd_handle_pcm_start_stop()
572 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in virtio_snd_handle_pcm_start_stop()
577 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_OK); in virtio_snd_handle_pcm_start_stop()
593 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in virtio_snd_handle_pcm_start_stop()
624 virtio_snd_ctrl_command *cmd) in virtio_snd_handle_pcm_release() argument
628 size_t msg_sz = iov_to_buf(cmd->elem->out_sg, in virtio_snd_handle_pcm_release()
629 cmd->elem->out_num, in virtio_snd_handle_pcm_release()
641 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in virtio_snd_handle_pcm_release()
656 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in virtio_snd_handle_pcm_release()
674 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_OK); in virtio_snd_handle_pcm_release()
684 process_cmd(VirtIOSound *s, virtio_snd_ctrl_command *cmd) in process_cmd() argument
687 size_t msg_sz = iov_to_buf(cmd->elem->out_sg, in process_cmd()
688 cmd->elem->out_num, in process_cmd()
690 &cmd->ctrl, in process_cmd()
703 code = le32_to_cpu(cmd->ctrl.code); in process_cmd()
712 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_NOT_SUPP); in process_cmd()
715 virtio_snd_handle_pcm_info(s, cmd); in process_cmd()
718 virtio_snd_handle_pcm_start_stop(s, cmd, true); in process_cmd()
721 virtio_snd_handle_pcm_start_stop(s, cmd, false); in process_cmd()
724 virtio_snd_handle_pcm_set_params(s, cmd); in process_cmd()
727 virtio_snd_handle_pcm_prepare(s, cmd); in process_cmd()
730 virtio_snd_handle_pcm_release(s, cmd); in process_cmd()
736 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_NOT_SUPP); in process_cmd()
741 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_BAD_MSG); in process_cmd()
744 iov_from_buf(cmd->elem->in_sg, in process_cmd()
745 cmd->elem->in_num, in process_cmd()
747 &cmd->resp, in process_cmd()
749 virtqueue_push(cmd->vq, cmd->elem, in process_cmd()
750 sizeof(virtio_snd_hdr) + cmd->payload_size); in process_cmd()
751 virtio_notify(VIRTIO_DEVICE(s), cmd->vq); in process_cmd()
761 virtio_snd_ctrl_command *cmd; in virtio_snd_process_cmdq() local
770 cmd = QTAILQ_FIRST(&s->cmdq); in virtio_snd_process_cmdq()
773 process_cmd(s, cmd); in virtio_snd_process_cmdq()
775 QTAILQ_REMOVE(&s->cmdq, cmd, next); in virtio_snd_process_cmdq()
777 virtio_snd_ctrl_cmd_free(cmd); in virtio_snd_process_cmdq()
795 virtio_snd_ctrl_command *cmd; in virtio_snd_handle_ctrl() local
805 cmd = g_new0(virtio_snd_ctrl_command, 1); in virtio_snd_handle_ctrl()
806 cmd->elem = elem; in virtio_snd_handle_ctrl()
807 cmd->vq = vq; in virtio_snd_handle_ctrl()
808 cmd->resp.code = cpu_to_le32(VIRTIO_SND_S_OK); in virtio_snd_handle_ctrl()
810 QTAILQ_INSERT_TAIL(&s->cmdq, cmd, next); in virtio_snd_handle_ctrl()
1364 virtio_snd_ctrl_command *cmd; in virtio_snd_reset() local
1375 cmd = QTAILQ_FIRST(&vsnd->cmdq); in virtio_snd_reset()
1376 QTAILQ_REMOVE(&vsnd->cmdq, cmd, next); in virtio_snd_reset()
1377 virtio_snd_ctrl_cmd_free(cmd); in virtio_snd_reset()