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@xxxxxxxxxxxxxxxxxxx> > Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx> > --- > 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