-
Notifications
You must be signed in to change notification settings - Fork 349
hda: hw support for hda chain #6656
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
9be8324 to
c7a1b11
Compare
c7a1b11 to
190506e
Compare
190506e to
081ddd5
Compare
a736998 to
4b4efff
Compare
|
@makarukp is this PR still pending validation or implementation completion or external dependencies ? |
|
@lgirdwood This PR is still under development, it requires at lease one more commit with code completion before it is ready for validation. |
2b3c0fa to
b508b85
Compare
|
Code is completed. PR is ready for validation. |
896317d to
6eb4ac3
Compare
src/audio/chain_dma.c
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah, this looks a bit suspicious. And in fact dw_dma_get_status() can return -EINVAL if the channel number is invalid, and that is a hard error and in that case stat isn't filled. So, this at least deserves a comment, much more so than the two comments above which explain something, that's pretty clear from the code itself.
|
@lyakh What do you think about such approach of critical error handling in response to 'dma_get_status()' ? |
According to https://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html |
|
@lyakh Accually -EINVAL can be returned in current implementation only by dw_dma_get_status() which is used by GPDMA in Zephyr. DMA uses intel_adsp_hda_dma_status() and there is only assertion |
6eb4ac3 to
36e1c70
Compare
kv2019i
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This starts to look good. A few minor issues, but no showstoppers.
36e1c70 to
ca41ffa
Compare
src/ipc/ipc4/handler.c
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ipc4_chain_manager_create() seems to be a better name for this, but it's already there
Hardware HDA chain require manager for controlling multiple streams tasks. Enable support with LL task and DMA mandatory logic. Signed-off-by: Piotr Makaruk <piotr.makaruk@intel.com>
HW chain dma support require new logic in handler Signed-off-by: Piotr Makaruk <piotr.makaruk@intel.com>
Enable building chain dma component on TGL platform Signed-off-by: Piotr Makaruk <piotr.makaruk@intel.com>
Enable building chain dma component on MTL platform Signed-off-by: Piotr Makaruk <piotr.makaruk@intel.com>
Enable building chain dma component on TGL-H platform Signed-off-by: Piotr Makaruk <piotr.makaruk@intel.com>
ca41ffa to
414a12c
Compare
src/audio/chain_dma.c
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lyakh this looks resolved now, error code is checked ?
src/audio/chain_dma.c
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ujfalusi resolved ?
|
This apparently caused regressions #6975 and #6976. It was also merged while failing a large number of tests: https://sof-ci.01.org/sofpr/PR6656/build3409/devicetest/index.html |
|
There is a lot of test failures on ADL capture, I've created a revert PR that can be merged today prior to daily test runs if we don't have fixes ready in time. |
@lgirdwood, @kv2019i the regression is affecting only cAVS targets which are not POR in Zephyr configuration. The tests were passing before on cAVS because they were using w/a in form of copier-copier solution which is not correct implementation. We should treat it as we have enabled feature for MTL and for cAVS it is a to do action (on best effort basis). |
I'm fine to make this a MTL only feature, but it should not break legacy features on other platforms. Can this be fixed with a Kconfig ? |
@lgirdwood Unfortunately it is not possible to fix it with Kconfig because legacy approach was erased by hw chain dma PR. As for #6975 (comment) issue it does not look like a big deal. I will prepare debug FW which could probably solve that problem or provide at least more information. As for #6976 (comment) issue I don't know what happened and still thinking about further steps for debug ... |
This PR enables hardware support for HDA chain transfers (without deploying internal pipelines):
Content:
Signed-off-by: Piotr Makaruk piotr.makaruk@intel.com