-
Notifications
You must be signed in to change notification settings - Fork 349
topology: Add topology for Waves codec #3972
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
|
@cujomalainey @dbaluta @keyonjie |
cujomalainey
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.
Thanks for the update LGTM
keyonjie
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, thanks.
plbossart
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.
couple of nit-picks below.
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.
does this mean that this will create controls "MaxxChrome Runtime %d" and "MaxChrome Setup %d"?
If yes, it's not clear to me what Runtime and Setup mean for a control? Adding some comments wouldn't hurt on the intended purpose and behavior
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.
These are controls dictated by the codec adapter and we have no control over.
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.
Sorry, what? Nothing prevents us from creating the controls we see fit in the topology. The codec adapter is just another module which knows nothing about controls. The codec adapter defines an IPC, but not how those controls are named and used.
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.
Agreed, but the names correspond to the naming in the codec adapter. Codec adapter has explicitly a "setup config" handler and a "runtime config" handler. I am down for comments I am just hesitant to deviate to far from the source code.
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.
does this mean that this will create controls "MaxxChrome Runtime %d" and "MaxChrome Setup %d"?
yes, the topology will create:
for speakers: MaxxChrome Runtime 1 MaxxChrome Setup 1
for headphones: MaxxChrome Runtime 2 MaxxChrome Setup 2
difference between them is defined by codec_adapter api. For example, Setup, as opposed to Runtime, has a codec_adapter-related part that holds codec id (used to select between possible codecs), and a bunch of actually unused fields.
AFAIK having setup and runtime configs is a must for a codec that implements codec_adapter interface.
So correct description of Setup and Runtime is some kind of a reference to codec_adapter api, which I can add as a comment to topology but not sure it is needed.
Or maybe I did not understand your point correctly?
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 point was that it would be more intuitive to have
for speakers: MaxxChrome Runtime MaxxChrome Setup Speaker
for headphones: MaxxChrome Runtime MaxxChrome Setup Headphones
and as discussed with Curtis this can be done via macros that are set in the caller
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.
@stolx see here how all these params are defined in top level m4 then used as variables in included m4? @plbossart is suggesting something similar so we can pass in names to codec adapter where relevant. Just to make the names more intuitive.
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.
@plbossart @cujomalainey
added macros to make more intuitive name for controls, please check if this will work
|
Github Actions hang fixed by #3992 , please |
1c916b7 to
37d72bc
Compare
plbossart
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 mostly good, I suggested an improvement below and I have a question as well.
Thanks!
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 follow why here you have a PIPELINE ID but not in the other file without demux?
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.
pipe-waves-codec-playback.m4 defines CA_RUNTIME_CONTROLBYTES_NAME and CA_SETUP_CONTROLBYTES_NAME
then sof/pipe-codec-adapter-playback.m4 adds pipeline ID to it:
https://github.com/thesofproject/sof/blob/main/tools/topology/sof/pipe-codec-adapter-playback.m4#L73
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.
so here I am aligning with sof/pipe-codec-adapter-playback.m4 implementation adding pipeline ID to name of a control
37d72bc to
2bc6d28
Compare
Add pipe for Waves codec playback Add pipe for Waves codec demux playback Modify sof-tgl-max98357a-rt5682 topology so Waves codec can be added to playback and headphones in case 'WAVES' is defined Signed-off-by: Oleksandr Strelchenko <oleksandr.strelchenko@waves.com>
2bc6d28 to
35426f2
Compare
|
@lgirdwood @dbaluta |
|
@stolx thanks. That part looks good to me. For the rest I'm not able to comment as they are Intel specific stuff. |
|
SOFCI TEST |
|
Rerun CI as build reported a TGL-H failure, but status was all green ? Could be a CI sync issue. Rerun to be sure. |
|
Usual CI timeout on suspend/resume. |
Add pipe for Waves codec playback
Add pipe for Waves codec demux playback
Modify sof-tgl-max98357a-rt5682 topology so Waves codec can be added
to playback and headphones depending on -DWAVES value
Signed-off-by: Oleksandr Strelchenko oleksandr.strelchenko@waves.com