[PATCH v3 06/17] ASoC: Intel: avs: Add pipeline management requests
Cezary Rojewski
cezary.rojewski at intel.com
Fri Mar 4 18:15:25 CET 2022
On 2022-03-04 5:13 PM, Ranjani Sridharan wrote:
> On Fri, 2022-03-04 at 15:57 +0100, Cezary Rojewski wrote:
>> Pipeline represents a scheduling entity. Their existence as well as
>> their state machine is controlled through CREATE_PIPELINE,
>> DELETE_PIPELINE and SET_PIPELINE_STATE IPCs.
...
>> +int avs_ipc_set_pipeline_state(struct avs_dev *adev, u8 instance_id,
>> + enum avs_pipeline_state state)
>> +{
>> + union avs_global_msg msg =
>> AVS_GLOBAL_REQUEST(SET_PIPELINE_STATE);
>> + struct avs_ipc_msg request = {{0}};
>> + int ret;
>> +
>> + msg.set_ppl_state.ppl_id = instance_id;
>> + msg.set_ppl_state.state = state;
>> + request.header = msg.val;
>> +
>> + ret = avs_dsp_send_msg(adev, &request, NULL);
>> + if (ret)
>> + avs_ipc_err(adev, &request, "set pipeline state", ret);
>> +
>> + return ret;
>> +}
>> +
>> +int avs_ipc_get_pipeline_state(struct avs_dev *adev, u8 instance_id,
>> + enum avs_pipeline_state *state)
> Can the pipeline state in the firmware change without the driver's
> knowledge? When should the driver use this get_pipeline_state()?
Thanks for feedback! Consider dropping the unnecessary bits so it is
easier to navigate through your responses.
Please note: kernel mailing list is not for explaining SW <-> FW
communication details. Feel free to contact my colleagues from firmware
team if in need of any FW-iface details.
-
Actual state machine is found in the firmware, not in the driver. Driver
may use such information when profiling and also during debug.
Regards,
Czarek
More information about the Alsa-devel
mailing list