Uh oh!
There was an error while loading. Please reload this page.
[RFC] ASoC: SOF: walk through widgets from host to DAI - #3817
Conversation
plbossart
commented
Aug 11, 2022
Does this solve the IO error @bardliao or is this 'just' to avoid setting-up irrelevant widgets? |
bardliao
commented
Aug 11, 2022
It will not solve the IO error, but without this even single capture can't start. I will put some log here later. |
bardliao
commented
Aug 15, 2022
@plbossart It will fail to create the second host copier with the dmesg_capture_err.txt |
plbossart
commented
Aug 19, 2022
I am still struggling to understand this PR @bardliao, I managed to capture audio with the demux/IPC3 without changing anything at the kernel level, so wondering if this isn't more of an IPC4 specific state machine or topology requirement that we are missing. |
bardliao
commented
Aug 19, 2022
Thanks @plbossart I will check what is the difference between IPC3 and IPC4. |
bardliao
commented
Aug 22, 2022
@plbossart After testing with thesofproject/sof#6131, I didn't see different behavior between IPC3 and IPC4 on kernel side. Both pipeline 32 and pipeline 35 are setup. But firmware didn't report error on it. |
plbossart
commented
Aug 22, 2022
Thanks for testing @bardliao Setting-up 'irrelevant widgets' might not be optimal but I see no reason why it would cause an error. It's likely that we miss something in the IPC4 sequences. |
bardliao
commented
Aug 24, 2022
Agree, close it for now |
Currently, we walk through widgets from source to sink. But it will walk through all widget that connect to the DAI including irrelevant widgets in multi stream capture case. This patch suggests the order from host to DAI. That can ensure only used widget will be handled. Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
bardliao
commented
Sep 5, 2022
@plbossart An issue is that we use stream_tag as host copier's node_id's index id. |
plbossart
commented
Sep 12, 2022
Indeed the copier node_id cannot be related to stream_tag values. That's a conceptual bug, probably coming from the good old days of the single host-dai pipeline. @ranj063 any comments? |
ranj063
commented
Sep 12, 2022
@bardliao@plbossart I'm struggling to understand the problem. What is an irrelevant widget? In the topology above, is the second copier irrelevant? If so, why? |
ranj063
commented
Sep 13, 2022
@bardliao Now that I understand the problem better, I think that switching the order of preparing/setting up widgets frrom host->dai is not the right solution. The walk_widgets_in_order() function was introduced for a very specific reason i.e to walk from the source to the sink in all cases and prepare the widgets in that order so that the input/output hw_params are propagated appropriately. Please stay tuned for the right fix. |
ranj063
commented
Sep 13, 2022
@bardliao@plbossart#3858 is the alternate fix |
bardliao
commented
Sep 13, 2022
Thanks for the explanation. @ranj063 |

Currently, we walk through widgets from source to sink. But it will walk
through all widget that connect to the DAI including irrelevant widgets
in multi stream capture case.
This patch suggests the order from host to DAI. That can ensure only
used widget will be handled.
Signed-off-by: Bard Liao yung-chuan.liao@linux.intel.com