mirror of https://github.com/thesofproject/sof.git
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:
parent
edc80c793f
commit
e72a05fce0
|
@ -153,30 +153,6 @@ error:
|
||||||
return err;
|
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)
|
static bool is_any_ppl_active(void)
|
||||||
{
|
{
|
||||||
struct ipc_comp_dev *icd;
|
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 */
|
/* resource is not released by triggering reset which is used by current FW */
|
||||||
ret = pipeline_reset(host->cd->pipeline, host->cd);
|
ret = pipeline_reset(host->cd->pipeline, host->cd);
|
||||||
if (ret != 0)
|
if (ret < 0)
|
||||||
ret = IPC4_INVALID_REQUEST;
|
ret = IPC4_INVALID_REQUEST;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue