On 07/05/2018 06:46 AM, Shreyas NC wrote:
Currently, in the SoundWire subsystem, the concept of stream is limited to a Master and one or more Slaves(Codecs). This series aims to add support for multiple Master(s) sharing the same reference clock and synchronized in the hardware.
This patch series adds:
- Fix to avoid duplicate stream state assignment
- Avoid incorrect stream release after configuring Master
- Helpers to lock bus instances part of the stream
- Boiler plate conversion of code to support a list of Master runtime
- Support multi link bank switch to support synchronization between multiple masters
- Add Intel platform ops for pre/post bank switch
changes in v5:
- Add patch to fix duplicate stream state assignment
- fix incorrect exit which was releasing the stream after configuring master
- In sdw_release_bus_lock(), release the mutex in reverse order as suggested by Takashi
It's almost good, I just had a couple of comments on the error cases and the lock handling on release. Can we respin a quick v6?
changes in v4:
- Added changes in sdw_stream_runtime structure to track Masters added to stream
- Add changes to support ml_bankswitch only if both the hardware supports and the stream is handled by multiple masters
Sanyog Kale (2): Documentation: soundwire: Add documentation for multi link soundwire: Add support to lock across bus instances
Shreyas NC (6): soundwire: Fix duplicate stream state assignment soundwire: fix incorrect exit after configuring stream soundwire: Initialize completion for defer messages soundwire: keep track of Masters in a stream soundwire: Add support for multi link bank switch soundwire: intel: Add pre/post bank switch ops
Vinod Koul (1): soundwire: Handle multiple master instances in a stream
Documentation/driver-api/soundwire/stream.rst | 28 ++ drivers/soundwire/bus.c | 6 + drivers/soundwire/bus.h | 4 + drivers/soundwire/intel.c | 65 ++++ drivers/soundwire/stream.c | 502 +++++++++++++++++++------- include/linux/soundwire/sdw.h | 12 +- 6 files changed, 483 insertions(+), 134 deletions(-)