Lines Matching refs:sroute
2549 static int sof_ipc4_route_setup(struct snd_sof_dev *sdev, struct snd_sof_route *sroute)
2551 struct snd_sof_widget *src_widget = sroute->src_widget;
2552 struct snd_sof_widget *sink_widget = sroute->sink_widget;
2584 sroute->src_queue_id = sof_ipc4_get_queue_id(src_widget, sink_widget,
2586 if (sroute->src_queue_id < 0) {
2589 return sroute->src_queue_id;
2592 sroute->dst_queue_id = sof_ipc4_get_queue_id(src_widget, sink_widget,
2594 if (sroute->dst_queue_id < 0) {
2597 sof_ipc4_put_queue_id(src_widget, sroute->src_queue_id,
2599 return sroute->dst_queue_id;
2603 if (sroute->src_queue_id > 0 && WIDGET_IS_COPIER(src_widget->id)) {
2605 sroute->src_queue_id);
2608 src_widget->widget->name, sroute->src_queue_id);
2614 src_widget->widget->name, sroute->src_queue_id,
2615 sink_widget->widget->name, sroute->dst_queue_id);
2625 extension |= SOF_IPC4_MOD_EXT_DST_MOD_QUEUE_ID(sroute->dst_queue_id);
2626 extension |= SOF_IPC4_MOD_EXT_SRC_MOD_QUEUE_ID(sroute->src_queue_id);
2634 src_widget->widget->name, sroute->src_queue_id,
2635 sink_widget->widget->name, sroute->dst_queue_id);
2642 sof_ipc4_put_queue_id(src_widget, sroute->src_queue_id, SOF_PIN_TYPE_OUTPUT);
2643 sof_ipc4_put_queue_id(sink_widget, sroute->dst_queue_id, SOF_PIN_TYPE_INPUT);
2647 static int sof_ipc4_route_free(struct snd_sof_dev *sdev, struct snd_sof_route *sroute)
2649 struct snd_sof_widget *src_widget = sroute->src_widget;
2650 struct snd_sof_widget *sink_widget = sroute->sink_widget;
2666 src_widget->widget->name, sroute->src_queue_id,
2667 sink_widget->widget->name, sroute->dst_queue_id);
2684 extension |= SOF_IPC4_MOD_EXT_DST_MOD_QUEUE_ID(sroute->dst_queue_id);
2685 extension |= SOF_IPC4_MOD_EXT_SRC_MOD_QUEUE_ID(sroute->src_queue_id);
2693 src_widget->widget->name, sroute->src_queue_id,
2694 sink_widget->widget->name, sroute->dst_queue_id);
2696 sof_ipc4_put_queue_id(sink_widget, sroute->dst_queue_id, SOF_PIN_TYPE_INPUT);
2697 sof_ipc4_put_queue_id(src_widget, sroute->src_queue_id, SOF_PIN_TYPE_OUTPUT);