Skip to content

Conversation

@RanderWang
Copy link
Collaborator

Voice recorder can capture voice and save it to hard disk. This patch fixes some bugs and add support of format conversion used by it.

Copy link
Member

@lgirdwood lgirdwood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

@lgirdwood lgirdwood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@RanderWang thanks, now I follow. @tmleman @marcinszkudlinski any comments ?

@RanderWang RanderWang force-pushed the ipc4_capture branch 3 times, most recently from 816a125 to 529575f Compare March 23, 2022 13:23
In ipc3 path, host driver sends pcm_hw_param message to fw and
direction is included. The direction is set to each component
after pipeline is complete. There is no such ipc message for
ipc4 path and direction can only be figured out from dai gateway
type if there is one. Ipc4 path gets direction from dai component
and set it to each component after connected pipeline are complete.
We skip the host copier to host copier case.

Signed-off-by: Rander Wang <rander.wang@intel.com>
For alh, link dma and host gateway, the conversion function is
based on direction. For example to convert s24c32 to s32c32 with
alh, it should be function of convert_s24_to_s32 for playback,
but it is a simple copy function for capture since the valid
sample bits are set in msb 24bits like 0xdddddd00 for alh gateway.

The combination of all conditions is very huge but only part
of them are used in real case. This patch only supports some
patterns in our test case and is not complete. It will be enhanced
in future.

Signed-off-by: Rander Wang <rander.wang@intel.com>
Currently error is reported for both active and paused state when
pipeline is set to reset. For ipc4 case, it is good to switch from
pause to reset. The switch from active to reset is not permitted for
both ipc3 and ipc4. This patch uses different log for active and paused
state.

Signed-off-by: Rander Wang <rander.wang@intel.com>
@RanderWang
Copy link
Collaborator Author

@tmleman please test this PR, I updated it . thanks

In ipc4 pipeline can't be reset when the source
and current component is in the same pipeline
and it is active. This is different with ipc3.

Signed-off-by: Rander Wang <rander.wang@intel.com>
Fix a error found by ipc4 Linux driver. Some component
pipeline may be incomplete, so the pipeline is not
updated to the component. Skip this pipeline and
return dai of null.

Signed-off-by: Rander Wang <rander.wang@intel.com>
@lgirdwood lgirdwood merged commit f6d83ba into thesofproject:main Mar 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants