mbox series

[v8,00/10] soundwire: Add multi link support

Message ID 1532682857-604-1-git-send-email-shreyas.nc@intel.com (mailing list archive)
Headers show
Series soundwire: Add multi link support | expand

Message

Shreyas NC July 27, 2018, 9:14 a.m. UTC
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
 - Fix to avoid bus lock acquired twice
 - 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

Additionally, as suggested by Vinod, the generic fixes are arranged
at the top of the series followed by the Documentation patch for
multi link support and then the multi link patches.

changes in v8:
 - Check both m_rt_count and bus->multi_link flag for clean up after
   single instance bankswitch as suggested by Pierre.

changes in v7:
 - Fix the git bisect issue pointed by Pierre. Now, the initialization
   of the m_rt_count and its modification/usage is split into 2 patches.
   While the declaration and initialization is in one patch,
   modification of the refcount and usage is in the multilink bankswitch
   patch.
 - Re-arrange the patches as suggested by Vinod

Sanyog Kale (3):
  soundwire: Fix acquiring bus lock twice during master release
  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                    | 511 +++++++++++++++++++-------
 include/linux/soundwire/sdw.h                 |  12 +-
 6 files changed, 489 insertions(+), 137 deletions(-)

Comments

Pierre-Louis Bossart July 27, 2018, 3:12 p.m. UTC | #1
On 7/27/18 4:14 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
>   - Fix to avoid bus lock acquired twice
>   - 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
> 
> Additionally, as suggested by Vinod, the generic fixes are arranged
> at the top of the series followed by the Documentation patch for
> multi link support and then the multi link patches.

Looks good!

All patches
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>


Thanks Shreyas and Sanyog for the updates and taking care of the comments.

> 
> changes in v8:
>   - Check both m_rt_count and bus->multi_link flag for clean up after
>     single instance bankswitch as suggested by Pierre.
> 
> changes in v7:
>   - Fix the git bisect issue pointed by Pierre. Now, the initialization
>     of the m_rt_count and its modification/usage is split into 2 patches.
>     While the declaration and initialization is in one patch,
>     modification of the refcount and usage is in the multilink bankswitch
>     patch.
>   - Re-arrange the patches as suggested by Vinod
> 
> Sanyog Kale (3):
>    soundwire: Fix acquiring bus lock twice during master release
>    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                    | 511 +++++++++++++++++++-------
>   include/linux/soundwire/sdw.h                 |  12 +-
>   6 files changed, 489 insertions(+), 137 deletions(-)
>
Vinod Koul Aug. 7, 2018, 6:51 a.m. UTC | #2
On 27-07-18, 14:44, 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.

Applied all, thanks