commit | e4bb237074c3bb733cc34bf41a251a368650696d | [log] [tgz] |
---|---|---|
author | Chao Song <chao.song@linux.intel.com> | Tue Aug 02 09:54:54 2022 +0800 |
committer | Chao Song <chao.song@linux.intel.com> | Tue Aug 23 16:43:01 2022 +0800 |
tree | e29df715fac114a5435745ad6dcaeed3895e962e | |
parent | cbce18dc7d70e53b6eaffd2014f8dda532077d7b [diff] |
topology2: add pin binding classes for multiple I/O queue An IPC4 widget may support multiple I/O queue. Queue ID is required during widget binding in route setup. This patch adds sink_pin_binging and src_pin_binding classes for multiple I/O queue support. For widget requires special pin(queue) binding, sink_pin_binding or src_pin_binding should be defined in the widget object. So that the kernel knows which pin to use during widget binding by parsing topology. Note that pin binding should be defined for all sink/source pins or for none. Even if there is only one sink pin requires special pin binding, pin binding should be defined for all sink pins, and for pins that are not used, give the value "NotConnected". This rule applies to source pins, too. Example: smart_amp widget has two sink pins and one source pin, and its feedback sink pin requires special pin binding, so we have to define sink_pin_binding objects within smart_amp object like this: Object.Base.sink_pin_binding.1 { # the main sink pin is connected to host for playback data sink_pin_binding_wname "copier.host.1.1" } Object.Base.src_pin_binding.2 { # the feedback sink pin is connected to capture dai for codec feedback. sink_pin_binding_wname "copier.SSP.2.1" } In this example, smart_amp is connected to host and DAI directly, it is also possible to be connected to host and DAI indirectly (with gain or other widget in the middle). Signed-off-by: Chao Song <chao.song@linux.intel.com>
See docs
See unit testing documentation
TODO: Add additional notes about how to deploy this on a live system
See Contributing to the Project
This project is licensed under the BSD Clause 3 - see the LICENCE file for details