Skip to content

Conversation

@aiChaoSONG
Copy link

This PR combine #4121 and #4097 to make sure we don't break existing kernel.
The smart amp and wov features will be tested by Chao and Libin manually currently.

@aiChaoSONG aiChaoSONG force-pushed the test_wov_with_smart_amp branch from ae0bdb5 to f9a59cf Compare January 16, 2023 05:20
Chao Song added 8 commits January 19, 2023 11:53
The SOF_TKN_COMP_PAYLOAD_WITH_OUTPUT_FMT token was added
as a widget token initially. Later we move it as an process
token because it is process module related.

However, the output format is not the only content optional
in the initialization payload, a boolean token is not extensible.

In this fixup, rename the token to SOF_TKN_PROCESS_INIT_PAYLOAD_FORMAT,
with only the first bit used for output format, and other bits reserved
for future use.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
The output format is not the only optional content in
the initialization payload, but the current used boolean
variable payload_with_output_fmt is specific to output
format, and is not extensible.

This fixup patch renames the variable name to init_payload_format,
and the optional output format only takes bit 0, bits 1~31 are
reserved for future use.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
This patch refactors code for searching the control data for
process module instance initialization into a function, and
introduces struct sof_ipc4_control_data member for process
module to avoid iterating kcontrol list more than once.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
There are two kinds of IPC4 payload formats for SOF process
module instance initialization:

  1. base module config + base module config extension
  2. base module config + module specific extension

The first payload format is commonly used by modules created
with Intel Audio Development Kit(IADK), and the second payload
format is commonly used by non-IADK modules. Because the first
payload format allows us to specify pin format for all of the
sink/source pins of a module, it can also be used for future
modules which can not be supported with the second payload format.

Note that modules use the first payload format should have one
or more sink/source pins, as restricted by IADK modules.

This patch adds the structure for base module config extension.
This structure is mainly used to interpret the bytes data of the
module to extract specific pin formats.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
…nfig extension

Some SOF IPC4 modules have base module config extension
in the init payload, while others don't.

Use init_payload_format bit one for the presence of
base module config extension. If bit one is set, there
is the base module config extension in the widget's
init payload.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
…ount

The SOF IPC4 process modules with base module config
extension in the instance initialization payload should
have one or more sink/source pins.

This patch ensures the values of num_sink/source_pin_fmts
in the base module config extension comply with above
restrictions.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
The copier output pin 0 format is set with module instance
initialization, format for additional copier output pin
should be set before the pin is used.

If a process module is connected to additional copier output
pin, the copier output pin format should be set according to
the corresponding sink pin format of the process module.

Signed-off-by: Chao Song <chao.song@linux.intel.com>
Some process modules output hw_params is different from its input
hw_params. Let's add a common help function to support this feature.
And update the hw_params in process module prepare callback.

Signed-off-by: Libin Yang <libin.yang@intel.com>
Signed-off-by: Chao Song <chao.song@linux.intel.com>
@aiChaoSONG aiChaoSONG force-pushed the test_wov_with_smart_amp branch from f9a59cf to 0aeecef Compare January 19, 2023 04:11
@ranj063 ranj063 closed this Feb 8, 2023
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.

2 participants