On 11/28/23 10:59, Krzysztof Kozlowski wrote:
On 28/11/2023 17:56, Krzysztof Kozlowski wrote:
Currently the Qualcomm Soundwire controller in its DAI startup op allocates the Soundwire stream runtime. This works fine for existing designs, but has limitations for stream runtimes with multiple controllers, like upcoming Qualcomm X1E80100 SoC with four WSA8840 speakers on two Soundwire controllers.
When two Soundwire controllers are added to sound card codecs, Soundwire startup() is called twice, one for each Soundwire controller, and second execution overwrites what was set before. During shutdown() this causes double free.
It is expected to have only one Soundwire stream runtime, thus it should be allocated from SoC soundcard context startup(), not from each Soundwire startup(). Such way will properly handle both cases: one and two Soundwire controllers in the stream runtime.
Signed-off-by: Krzysztof Kozlowski krzysztof.kozlowski@linaro.org
This is an entirely different approach than my previous try here: https://lore.kernel.org/all/20231025144601.268645-1-krzysztof.kozlowski@lina...
... and I forgot to thank you Pierre-Louis for patient explanation of the case in my previous try. Your review was much appreciated!
You're welcome. It's good if we have multiple platforms using the 'stream' concept in similar ways.