ipc4: revert "ipc4: fix pipeline reset"

This reverts commit 819c023d23.
Fix a regression issue on windows.

Component is set to reset status in pipeline_reset, so no
need to propagate reset status to each component.

Pipe_reset may return PATH_STOP of value 1 and this is not
a error status, so we don't return error for this case.

Signed-off-by: Rander Wang <rander.wang@intel.com>
This commit is contained in:
Rander Wang 2022-03-15 15:00:26 +08:00 committed by Liam Girdwood
parent edc80c793f
commit e72a05fce0
1 changed files with 1 additions and 29 deletions

View File

@ -153,30 +153,6 @@ error:
return err;
}
static int propagate_state_to_ppl_comp(struct ipc *ipc, uint32_t ppl_id, int cmd)
{
int ret = IPC4_INVALID_RESOURCE_ID;
struct ipc_comp_dev *icd;
struct list_item *clist;
list_for_item(clist, &ipc->comp_list) {
icd = container_of(clist, struct ipc_comp_dev, list);
if (icd->type != COMP_TYPE_COMPONENT)
continue;
if (!cpu_is_me(icd->core))
continue;
if (ipc_comp_pipe_id(icd) == ppl_id) {
ret = comp_set_state(icd->cd, cmd);
if (ret != 0)
return IPC4_INVALID_REQUEST;
}
}
return ret;
}
static bool is_any_ppl_active(void)
{
struct ipc_comp_dev *icd;
@ -303,13 +279,9 @@ static int set_pipeline_state(uint32_t id, uint32_t cmd, bool *delayed)
}
}
ret = propagate_state_to_ppl_comp(ipc, id, COMP_TRIGGER_RESET);
if (ret != 0)
return ret;
/* resource is not released by triggering reset which is used by current FW */
ret = pipeline_reset(host->cd->pipeline, host->cd);
if (ret != 0)
if (ret < 0)
ret = IPC4_INVALID_REQUEST;
return ret;