Lines Matching refs:msg

36 static int imx_rpmsg_pcm_send_message(struct rpmsg_msg *msg,
49 dev_dbg(&rpdev->dev, "send cmd %d\n", msg->s_msg.header.cmd);
51 if (!(msg->s_msg.header.type == MSG_TYPE_C))
54 ret = rpmsg_send(rpdev->ept, (void *)&msg->s_msg,
62 /* No receive msg for TYPE_C command */
63 if (msg->s_msg.header.type == MSG_TYPE_C) {
73 msg->s_msg.header.cmd);
78 memcpy(&msg->r_msg, &info->r_msg, sizeof(struct rpmsg_r_msg));
79 memcpy(&info->msg[msg->r_msg.header.cmd].r_msg,
80 &msg->r_msg, sizeof(struct rpmsg_r_msg));
89 switch (msg->s_msg.header.cmd) {
91 info->msg[TX_POINTER].r_msg.param.buffer_offset = 0;
94 info->msg[RX_POINTER].r_msg.param.buffer_offset = 0;
100 dev_dbg(&rpdev->dev, "cmd:%d, resp %d\n", msg->s_msg.header.cmd,
109 struct rpmsg_msg *msg,
123 memcpy(&info->work_list[index].msg, msg,
143 struct rpmsg_msg *msg;
146 msg = &info->msg[TX_HW_PARAM];
147 msg->s_msg.header.cmd = TX_HW_PARAM;
149 msg = &info->msg[RX_HW_PARAM];
150 msg->s_msg.header.cmd = RX_HW_PARAM;
153 msg->s_msg.param.rate = params_rate(params);
157 msg->s_msg.param.format = RPMSG_S16_LE;
160 msg->s_msg.param.format = RPMSG_S24_LE;
163 msg->s_msg.param.format = RPMSG_DSD_U16_LE;
166 msg->s_msg.param.format = RPMSG_DSD_U32_LE;
169 msg->s_msg.param.format = RPMSG_S32_LE;
175 msg->s_msg.param.channels = RPMSG_CH_LEFT;
178 msg->s_msg.param.channels = RPMSG_CH_STEREO;
181 msg->s_msg.param.channels = params_channels(params);
185 info->send_message(msg, info);
194 struct rpmsg_msg *msg;
199 msg = &info->msg[TX_PERIOD_DONE + MSG_TYPE_A_NUM];
201 msg = &info->msg[RX_PERIOD_DONE + MSG_TYPE_A_NUM];
203 buffer_tail = msg->r_msg.param.buffer_tail;
215 struct rpmsg_msg *msg;
218 msg = &info->msg[TX_PERIOD_DONE + MSG_TYPE_A_NUM];
219 msg->s_msg.header.cmd = TX_PERIOD_DONE;
221 msg = &info->msg[RX_PERIOD_DONE + MSG_TYPE_A_NUM];
222 msg->s_msg.header.cmd = RX_PERIOD_DONE;
225 imx_rpmsg_insert_workqueue(substream, msg, info);
236 struct rpmsg_msg *msg;
241 msg = &info->msg[TX_OPEN];
242 msg->s_msg.header.cmd = TX_OPEN;
246 info->msg[cmd].s_msg.param.buffer_tail = 0;
247 info->msg[cmd].r_msg.param.buffer_tail = 0;
248 info->msg[TX_POINTER].r_msg.param.buffer_offset = 0;
251 msg = &info->msg[RX_OPEN];
252 msg->s_msg.header.cmd = RX_OPEN;
256 info->msg[cmd].s_msg.param.buffer_tail = 0;
257 info->msg[cmd].r_msg.param.buffer_tail = 0;
258 info->msg[RX_POINTER].r_msg.param.buffer_offset = 0;
261 info->send_message(msg, info);
289 struct rpmsg_msg *msg;
295 msg = &info->msg[TX_CLOSE];
296 msg->s_msg.header.cmd = TX_CLOSE;
298 msg = &info->msg[RX_CLOSE];
299 msg->s_msg.header.cmd = RX_CLOSE;
302 info->send_message(msg, info);
354 struct rpmsg_msg *msg;
357 msg = &info->msg[TX_BUFFER];
358 msg->s_msg.header.cmd = TX_BUFFER;
360 msg = &info->msg[RX_BUFFER];
361 msg->s_msg.header.cmd = RX_BUFFER;
365 msg->s_msg.param.buffer_addr = substream->runtime->dma_addr;
366 msg->s_msg.param.buffer_size = snd_pcm_lib_buffer_bytes(substream);
367 msg->s_msg.param.period_size = snd_pcm_lib_period_bytes(substream);
368 msg->s_msg.param.buffer_tail = 0;
370 info->num_period[substream->stream] = msg->s_msg.param.buffer_size /
371 msg->s_msg.param.period_size;
376 return imx_rpmsg_insert_workqueue(substream, msg, info);
383 struct rpmsg_msg *msg;
386 msg = &info->msg[TX_START];
387 msg->s_msg.header.cmd = TX_START;
389 msg = &info->msg[RX_START];
390 msg->s_msg.header.cmd = RX_START;
393 return imx_rpmsg_insert_workqueue(substream, msg, info);
400 struct rpmsg_msg *msg;
403 msg = &info->msg[TX_RESTART];
404 msg->s_msg.header.cmd = TX_RESTART;
406 msg = &info->msg[RX_RESTART];
407 msg->s_msg.header.cmd = RX_RESTART;
410 return imx_rpmsg_insert_workqueue(substream, msg, info);
417 struct rpmsg_msg *msg;
420 msg = &info->msg[TX_PAUSE];
421 msg->s_msg.header.cmd = TX_PAUSE;
423 msg = &info->msg[RX_PAUSE];
424 msg->s_msg.header.cmd = RX_PAUSE;
427 return imx_rpmsg_insert_workqueue(substream, msg, info);
434 struct rpmsg_msg *msg;
438 msg = &info->msg[TX_TERMINATE];
439 msg->s_msg.header.cmd = TX_TERMINATE;
442 info->msg[cmd].s_msg.param.buffer_tail = 0;
443 info->msg[cmd].r_msg.param.buffer_tail = 0;
444 info->msg[TX_POINTER].r_msg.param.buffer_offset = 0;
446 msg = &info->msg[RX_TERMINATE];
447 msg->s_msg.header.cmd = RX_TERMINATE;
450 info->msg[cmd].s_msg.param.buffer_tail = 0;
451 info->msg[cmd].r_msg.param.buffer_tail = 0;
452 info->msg[RX_POINTER].r_msg.param.buffer_offset = 0;
457 return imx_rpmsg_insert_workqueue(substream, msg, info);
511 * all the period index to M core, reduce some unnessesary msg
525 struct rpmsg_msg *msg;
534 msg = &info->msg[TX_PERIOD_DONE + MSG_TYPE_A_NUM];
535 msg->s_msg.header.cmd = TX_PERIOD_DONE;
537 msg = &info->msg[RX_PERIOD_DONE + MSG_TYPE_A_NUM];
538 msg->s_msg.header.cmd = RX_PERIOD_DONE;
541 msg->s_msg.header.type = MSG_TYPE_C;
548 if (buffer_tail != msg->s_msg.param.buffer_tail) {
549 written_num = buffer_tail - msg->s_msg.param.buffer_tail;
553 msg->s_msg.param.buffer_tail = buffer_tail;
557 memcpy(&info->notify[substream->stream], msg,
581 imx_rpmsg_insert_workqueue(substream, msg, info);
627 struct rpmsg_msg msg;
641 memcpy(&msg, &info->notify[TX], sizeof(struct rpmsg_s_msg));
644 info->send_message(&msg, info);
651 memcpy(&msg, &info->notify[RX], sizeof(struct rpmsg_s_msg));
654 info->send_message(&msg, info);
660 if (work_of_rpmsg->msg.s_msg.header.type == MSG_TYPE_C &&
661 (work_of_rpmsg->msg.s_msg.header.cmd == TX_PERIOD_DONE ||
662 work_of_rpmsg->msg.s_msg.header.cmd == RX_PERIOD_DONE))
666 info->send_message(&work_of_rpmsg->msg, info);
708 /* Initialize msg */
710 info->msg[i].s_msg.header.cate = IMX_RPMSG_AUDIO;
711 info->msg[i].s_msg.header.major = IMX_RMPSG_MAJOR;
712 info->msg[i].s_msg.header.minor = IMX_RMPSG_MINOR;
713 info->msg[i].s_msg.header.type = MSG_TYPE_A;
714 info->msg[i].s_msg.param.audioindex = 0;
786 rpmsg_tx = &info->msg[TX_SUSPEND];
787 rpmsg_rx = &info->msg[RX_SUSPEND];
804 rpmsg_tx = &info->msg[TX_RESUME];
805 rpmsg_rx = &info->msg[RX_RESUME];