-
Notifications
You must be signed in to change notification settings - Fork 321
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
[DNM] dai: add support for Intel UAOL DAI #9227
base: main
Are you sure you want to change the base?
Conversation
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.
Not following the directions, this doesn't seem aligned with what we previously did for ALH / SoundWire.
#else | ||
channel = copier_cfg->gtw_cfg.node_id.f.v_index; | ||
#endif | ||
break; |
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.
I don't fully understand this.
for LNL+ all the DMA stuff is handled in the same way with an HDaudio-based solution.
We just moved some of the ALH stuff into the HDaudio prodessing - see line 94 the test for ALH.
so shouldn't the UAOL stuff also be moved under the HDAudio category? Why special case what looks identical?
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.
my comment still stands.
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.
@tlissows any update here ?
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.
Removed support for MTL, so the line is no longer present.
However the concept of handling UAOL by HDA code (and removing of all UAOL related stuff from SOF) seems not to be applicable. This is because of UAOL being a type of DAI handled by separate Zephyr driver with the specific API.
b89f3e5
to
f6551e3
Compare
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.
we really need to make UAOL support dependent on a version of silicon (pick one), e.g. ACE2.0, and not add code that will never be used on previous generations.
There's really no point in supporting anything older than ACE2.0?
#else | ||
channel = copier_cfg->gtw_cfg.node_id.f.v_index; | ||
#endif | ||
break; |
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.
my comment still stands.
@tlissows ping ? |
f6551e3
to
11bbbc5
Compare
Removed support for ACE1.x platform from this PR. Also aligned to the changes introduced by PR basefw: Add handling of IPC4_DMA_CONTROL messages. |
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.
@tlissows I assume still undergoing testing hence the DNM ? Pls also respond to open from @plbossart
src/audio/dai-zephyr.c
Outdated
@@ -153,25 +154,25 @@ int dai_set_config(struct dai *dai, struct ipc_config_dai *common_config, | |||
switch (common_config->type) { | |||
case SOF_DAI_INTEL_SSP: | |||
cfg.type = is_blob ? DAI_INTEL_SSP_NHLT : DAI_INTEL_SSP; | |||
cfg_params = is_blob ? spec_config : &sof_cfg->ssp; | |||
cfg_params = is_blob ? (void *)>w_cfg->config_data : &sof_cfg->ssp; |
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.
Do we need the void* cast here or is the compiler throwing up a warning in this case ? cfg_params is also const too.
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.
The cast was added to avoid compiler warning like this (being not related to cfg_params
):
pointer type mismatch ('uint32_t const (*)[1]' and 'const struct sof_ipc_dai_ssp_params *') [-Wpointer-type-mismatch]
cfg_params = is_blob ? >w_cfg->config_data : &sof_cfg->ssp;
^ ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~
Changing for two casts for better readability:
cfg_params = is_blob ? (void *)>w_cfg->config_data : (void *)&sof_cfg->ssp;
#else | ||
channel = copier_cfg->gtw_cfg.node_id.f.v_index; | ||
#endif | ||
break; |
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.
@tlissows any update here ?
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.
I have no remarks regarding the code, but I would like to see that the whole thing passes through CI. There is a temporary commit missing here that would indicate the Zephyr version from your second pull request:
--- a/west.yml
+++ b/west.yml
@@ -43,7 +43,7 @@ manifest:
- name: zephyr
repo-path: zephyr
- revision: 99e6280d7e22552de9a94992b626acdcbde00fee
+ revision: pull/69906/head
remote: zephyrproject
# Import some projects listed in zephyr/west.yml@revision
@tlissows @tmleman it looks like this is good to go once it passes CI - I think @plbossart comments have now been addressed. Are we blocking on any Zephyr PRs before we can merge ? |
11bbbc5
to
0c5b63a
Compare
Currently, the dai_set_config() function is called with copier gateway config data passed but without the config length, possibly making the config not parsable for some DAI drivers. This patch adds passing of the full ipc4_copier_gateway_cfg structure, giving DAI drivers the ability to access config length if needed. Signed-off-by: Tomasz Lissowski <tomasz.lissowski@intel.com>
Add strict use of dai_type enum items as a call parameter for dai_get_device() function. Currently, both the dai_type and sof_ipc_dai_type items are used inconsistently. Signed-off-by: Tomasz Lissowski <tomasz.lissowski@intel.com>
This adds support for Intel USB Audio Offload Link (UAOL) DAI. Signed-off-by: Tomasz Lissowski <tomasz.lissowski@intel.com>
Signed-off-by: Tomasz Lissowski <tomasz.lissowski@intel.com>
0c5b63a
to
d3c99ca
Compare
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.
@tlissows looks like we have a panic in a legacy playback use case test reported by CI.
This adds support for Intel USB Audio Offload Link (UAOL) DAI.
This PR needs another (Zephyr) PR drivers: dai: add DAI driver for Intel UAOL to be merged first.