-
Notifications
You must be signed in to change notification settings - Fork 349
selector: convert selector module to use base config extension #7058
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
lgirdwood
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.
ujfalusi
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.
@aiChaoSONG, looks good!
|
@ujfalusi good now ? |
|
Let's hold on merge until Libin help to verify the patch, the rimage patch is needed for the verification: thesofproject/rimage#134 |
After enabling the base config extension, WoV doesn't work. But it is not this PR's issue. Selector is initialized successfully after enabling base config extension. |
|
I am able to test wov feature with this PR + thesofproject/linux#4185 + thesofproject/rimage#135 + #7106 without any hack. |
ujfalusi
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.
@aiChaoSONG, looks good to my eyes, thank you.
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.
Looks good, no need to update for the whitespace issue if tests pass and other reviews are ok.
|
@aiChaoSONG the internal CI tests are failing. Can you please check? |
|
@ranj063 Looks like the quickbuild CI issue, let me retrigger |
|
SOFCI TEST |
|
@wszypelt Internal CI trigger Python IPC4 smoke test failed, could you please help to take a look. |
|
Update: rebased on the latest main |
|
test_003_01_kd_topology_host_gw test is failing. @aiChaoSONG @wszypelt is this related to PR or unrelated failure? |
@kv2019i @wszypelt selector module is use in the wov topology, this patch changed the payload for selector, I am afraid the test case needs to be modified accordingly. |
|
@aiChaoSONG @kv2019i I'll take a look at it, but recently the KD tests have been changed to meet the new requirements |
|
SOFCI TEST |
|
@aiChaoSONG pls check internal CI if failure persists. |
|
@aiChaoSONG ok, failed again, can you check internal CI. |
|
@wszypelt I have changed the payload for selector in this patch, but quickbuild python tests still construct selector payload in the old way, so I think we need to modify the test case accordingly. Could you or someone please help to do this? Below is the payload format for set_large_config: |
pblaszko
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 change is breaking compatibility to present IPC4 protocol.
Current MicSelect InitInstance structure is:
{
ipc4_base_module_cfg base_cfg;
ipc4_audio_format out_format;
}
|
@ujfalusi @ranj063 @pblaszko After synced with Poland team, the payload base + output format still need to be supported, because Windows use it, and if we convert it directly to use base + base_ext, we will break the compatibility with windows. Howerver, if we don't do the conversion, the selector can not work on linux side, so does wov feature. |
|
@pblaszko @aiChaoSONG are you guys aligned now - do we need to make further changes ? |
I made a patch for the selector to support both base_config+output_format and base_config+base_config_extension initialization payload, aiChaoSONG@2e123b5, I'd like to see if Peter and Ranjani are good with this. |
Ok, we also need to see @pblaszko approval too. |
I'm OK with this approach. I wait for bringing changes to this PR. |
This patch extend the selector module to use base config extension for module init, which ensures only base_cfg and base_cfg_ext is received in module init on linux side and align the init blob format with other modules. However, on Windows side, the payload base config with output format style payload is still used, this payload should be supported before Windows doing the payload format migration. Signed-off-by: Chao Song <[email protected]>
This patch converts the selector module to use base config extension for module init, which ensures only base_cfg and base_cfg_ext is received in module init, and align the init blob format with other modules.
Signed-off-by: Chao Song [email protected]
The selector module is using the module adapter interface, and it has one input and one output, the input format(base_cfg) is already handled with module adapter, we only need to handle the output format.
@ranj063 I suppose that the nb_input_pins/nb_output_pins in base_cfg_ext could be zero, this help us to save some memory. If it is not the case, please let me know, I will also add the input pin format in comp_data (through the input format will never be used in the fw).