On 4/18/18 3:58 AM, Vinod Koul wrote:
This series adds support in SoundWire subsystem for:
- Documentation for stream support
- stream management
- data port management
- DAI ops in cadence and Intel drivers
- ASoC API to propagate SDW stream
Updates in v4:
- Add more comments for sdw_release_master_stream()
- Make sure ports are freed upon sdw_stream_remove_slave()
- Clarify snd_soc_dai_set_sdw_stream() and setting of NULL upon release.
Still a couple of precisions needed to make the code self-explanatory, clarify a set of error handling and and fix the device-to-device channel count issues.
I am still a bit lost on how ASoC will make use of the 'stream' concept. The documentation mentions that the master and slave drivers will call the APIs independently, but the order of the processing is still not clear, who allocates the stream is still confusing and how all these independent drivers get a hold of the 'stream' pointer isn't explained.
Updates in v3:
- Remove stream state transition checks and redefine stream states
- Update bansk switch routines
- Other nitpicks pointed out by Pierre.
Updates in v2:
- Make ASoC API inlined
- Make stream states as states and not action
- Update the direction enum
- Fix some typos and comment updates
Sanyog Kale (7): Documentation: soundwire: Add more documentation soundwire: Add support for SoundWire stream management soundwire: Add support for port management soundwire: Add Master and Slave port programming soundwire: Add helpers for ports operations soundwire: Add bank switch routine soundwire: Add stream configuration APIs
Shreyas NC (2): ASoC: Add SoundWire stream programming interface soundwire: Remove cdns_master_ops
Vinod Koul (4): soundwire: cdns: Add port routines soundwire: cdns: Add stream routines soundwire: intel: Add stream initialization soundwire: intel: Add audio DAI ops
.../driver-api/soundwire/error_handling.rst | 65 + Documentation/driver-api/soundwire/index.rst | 3 + Documentation/driver-api/soundwire/locking.rst | 106 ++ Documentation/driver-api/soundwire/stream.rst | 372 +++++ drivers/soundwire/Kconfig | 2 +- drivers/soundwire/Makefile | 2 +- drivers/soundwire/bus.c | 43 + drivers/soundwire/bus.h | 72 + drivers/soundwire/cadence_master.c | 453 +++++- drivers/soundwire/cadence_master.h | 151 ++ drivers/soundwire/intel.c | 528 ++++++- drivers/soundwire/intel.h | 4 + drivers/soundwire/intel_init.c | 3 + drivers/soundwire/stream.c | 1480 ++++++++++++++++++++ include/linux/soundwire/sdw.h | 332 ++++- include/linux/soundwire/sdw_intel.h | 14 + include/sound/soc-dai.h | 23 + 17 files changed, 3639 insertions(+), 14 deletions(-) create mode 100644 Documentation/driver-api/soundwire/error_handling.rst create mode 100644 Documentation/driver-api/soundwire/locking.rst create mode 100644 Documentation/driver-api/soundwire/stream.rst create mode 100644 drivers/soundwire/stream.c