[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