[PATCH 1/8] soundwire: bus_type: add master_device/driver support
Greg KH
gregkh at linuxfoundation.org
Fri Feb 28 08:32:27 CET 2020
On Thu, Feb 27, 2020 at 04:31:59PM -0600, Pierre-Louis Bossart wrote:
> In the existing SoundWire code, Master Devices are not explicitly
> represented - only SoundWire Slave Devices are exposed (the use of
> capital letters follows the SoundWire specification conventions).
>
> The SoundWire Master Device provides the clock, synchronization
> information and command/control channels. When multiple links are
> supported, a Controller may expose more than one Master Device; they
> are typically embedded inside a larger audio cluster (be it in an
> SOC/chipset or an external audio codec), and we need to describe it
> using the Linux device and driver model. This will allow for
> configuration functions to account for external dependencies such as
> power rails, clock sources or wake-up mechanisms. This transition will
> also allow for better sysfs support without the reference count issues
> mentioned in the initial reviews.
>
> In this patch, we convert the existing code to use an explicit
> sdw_slave_type, then define new objects (sdw_master_device and
> sdw_master_driver).
>
> A parent (such as the Intel audio controller or its equivalent on
> Qualcomm devices) would use sdw_master_device_add() to create the
> device, passing a driver name as a parameter. The master device would
> be released when device_unregister() is invoked by the parent.
>
> Note that since there is no standard for the Master host-facing
> interface, so the bus matching relies on a simple string matching (as
> previously done with platform devices).
>
> The 'Master Device' driver exposes callbacks for
> probe/startup/shutdown/remove/process_wake. The startup and process
> wake need to be called by the parent directly (using wrappers), while
> the probe/shutdown/remove are handled by the SoundWire bus core upon
> device creation and release.
>
> Additional callbacks will be added in the future for e.g. autonomous
> clock stop modes.
>
> Reviewed-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
> ---
> drivers/soundwire/Makefile | 2 +-
> drivers/soundwire/bus_type.c | 141 +++++++++++++++++++++++++++--
> drivers/soundwire/master.c | 100 ++++++++++++++++++++
> drivers/soundwire/slave.c | 7 +-
> include/linux/soundwire/sdw.h | 76 ++++++++++++++++
> include/linux/soundwire/sdw_type.h | 36 +++++++-
> 6 files changed, 351 insertions(+), 11 deletions(-)
> create mode 100644 drivers/soundwire/master.c
As you are adding new sysfs files here, is there a follow-on patch for
Documentation/ABI/ updates?
thanks,
greg k-h
More information about the Alsa-devel
mailing list