Lines Matching defs:sdev
18 static int sof_ipc4_set_multi_pipeline_state(struct snd_sof_dev *sdev, u32 state,
26 return sof_ipc4_set_pipeline_state(sdev, trigger_list->pipeline_instance_ids[0],
43 return sof_ipc_tx_message_no_reply(sdev->ipc, &msg, ipc_size);
46 int sof_ipc4_set_pipeline_state(struct snd_sof_dev *sdev, u32 instance_id, u32 state)
51 dev_dbg(sdev->dev, "ipc4 set pipeline instance %d state %d", instance_id, state);
61 return sof_ipc_tx_message_no_reply(sdev->ipc, &msg, 0);
66 sof_ipc4_add_pipeline_to_trigger_list(struct snd_sof_dev *sdev, int state,
104 sof_ipc4_update_pipeline_state(struct snd_sof_dev *sdev, int state, int cmd,
206 static int sof_ipc4_chain_dma_trigger(struct snd_sof_dev *sdev,
238 dev_err(sdev->dev, "Unexpected state %d", state);
258 dev_err(sdev->dev,
276 return sof_ipc_tx_message_no_reply(sdev->ipc, &msg, 0);
282 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(component);
285 struct sof_ipc4_fw_data *ipc4_data = sdev->private;
294 dev_dbg(sdev->dev, "trigger cmd: %d state: %d\n", cmd, state);
315 return sof_ipc4_chain_dma_trigger(sdev, pipeline_list, state, cmd);
337 sof_ipc4_add_pipeline_to_trigger_list(sdev, state, spipe, trigger_list);
342 sof_ipc4_add_pipeline_to_trigger_list(sdev, state, spipe, trigger_list);
359 ret = sof_ipc4_set_multi_pipeline_state(sdev, SOF_IPC4_PIPE_PAUSED, trigger_list);
361 dev_err(sdev->dev, "failed to pause all pipelines\n");
368 sof_ipc4_update_pipeline_state(sdev, SOF_IPC4_PIPE_PAUSED, cmd, spipe,
377 ret = sof_ipc4_set_multi_pipeline_state(sdev, state, trigger_list);
379 dev_err(sdev->dev, "failed to set final state %d for all pipelines\n", state);
388 if (sdev->fw_state != SOF_FW_CRASHED || state != SOF_IPC4_PIPE_RESET)
397 sof_ipc4_update_pipeline_state(sdev, state, cmd, spipe, trigger_list);
441 static void ipc4_ssp_dai_config_pcm_params_match(struct snd_sof_dev *sdev, const char *link_name,
449 list_for_each_entry(slink, &sdev->dai_link_list, list) {
464 list_for_each_entry(dai, &sdev->dai_list, list)
476 static int sof_ipc4_pcm_dai_link_fixup_rate(struct snd_sof_dev *sdev,
515 dev_err(sdev->dev, "Unable to select sampling rate for DAI link\n");
531 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(component);
565 int ret = sof_ipc4_pcm_dai_link_fixup_rate(sdev, params, ipc4_copier);
573 ipc4_ssp_dai_config_pcm_params_match(sdev, (char *)rtd->dai_link->name, params);
582 static void sof_ipc4_pcm_free(struct snd_sof_dev *sdev, struct snd_sof_pcm *spcm)
596 static int sof_ipc4_pcm_setup(struct snd_sof_dev *sdev, struct snd_sof_pcm *spcm)
599 struct sof_ipc4_fw_data *ipc4_data = sdev->private;
607 sof_mailbox_read(sdev, sdev->fw_info_box.offset + abi_offset, &abi_version,
620 sof_ipc4_pcm_free(sdev, spcm);
629 sof_ipc4_pcm_free(sdev, spcm);
639 static void sof_ipc4_build_time_info(struct snd_sof_dev *sdev, struct snd_sof_pcm_stream *spcm)
666 dev_err(sdev->dev, "host or dai copier are not found\n");
674 sdev->fw_info_box.offset;
678 sof_mailbox_read(sdev, info->llp_offset, &llp_slot, sizeof(llp_slot));
690 sdev->fw_info_box.offset;
692 sof_mailbox_read(sdev, info->llp_offset, &llp_slot, sizeof(llp_slot));
704 sdev->fw_info_box.offset;
705 sof_mailbox_read(sdev, info->llp_offset, &llp_slot, sizeof(llp_slot));
707 dev_info(sdev->dev, "no llp found, fall back to default HDA path");
717 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(component);
734 sof_ipc4_build_time_info(sdev, &spcm->stream[substream->stream]);
739 static int sof_ipc4_get_stream_start_offset(struct snd_sof_dev *sdev,
760 sof_mailbox_read(sdev, sdev->fw_info_box.offset + offset, &ppl_reg, sizeof(ppl_reg));
778 struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(component);
803 ret = sof_ipc4_get_stream_start_offset(sdev, substream, stream, time_info);
813 tmp_ptr = snd_sof_pcm_get_stream_position(sdev, component, substream);
817 sof_mailbox_read(sdev, time_info->llp_offset, &llp, sizeof(llp));