This patchset applies on top of soundwire/next, now that the interface definitions are merged.
The changes are essentially a removal of the platform devices, replaced by explicit device(s)/driver for the SoundWire Master(s), and the implementation of the new interfaces required to scan the ACPI tables, probe the links and start them.
The missing prepare, trigger and setup ASoC callbacks are also implemented. The hw_params and free callbacks use the new interfaces as well.
While there are quite a few lines of code changed, this is mostly about interface changes. The next series will contain more functional changes and deal with race conditions on probe, enumeration and suspend/resume issues.
Thanks to Vinod Kould and GregKH for the reviews on previous versions, much appreciated.
Changes since v4: (feedback from GregKH except last point flagged by Intel validation)
Clarified error handling with uevents Added better commit messages and rationale behind exposing a Master Device. Used 'master_device' instead of 'md' when possible (kept the shortcut with really long function names) Added namespace check support for Intel code (the Cadence and core stuff should be done in a separate patchset). Fixed GPLv2 license/EXPORT_SYMBOL_GPL error for the Master Device code. Fixed missing error handling in sdw_md_add Added kerneldoc comments for sdw_md_driver structure (with explanation on what 'md' stands for) Fixed NULL pointer assignment leading to issues with driver_unregister
Changes since v3: One line change to re-add EXPORT_SYMBOL Add missing driver_registration
Changes since v2: moved uevent handling to slave_type (Vinod)
Changes since v1: fix typo (Vinod) removed uevent open for Master (Vinod) clarified commit messages (Cezary) no functionality change
Bard Liao (1): soundwire: register master device driver
Pierre-Louis Bossart (13): soundwire: renames to prepare support for master drivers/devices soundwire: rename dev_to_sdw_dev macro soundwire: rename drv_to_sdw_slave_driver macro soundwire: bus_type: rename sdw_drv_ to sdw_slave_drv soundwire: intel: rename res field as link_res soundwire: add support for sdw_slave_type soundwire: slave: move uevent handling to slave device level soundwire: add initial definitions for sdw_master_device soundwire: intel: remove platform devices and use 'Master Devices' instead soundwire: intel: free all resources on hw_free() soundwire: intel_init: add implementation of sdw_intel_enable_irq() soundwire: intel_init: use EXPORT_SYMBOL_NS soundwire: intel: use EXPORT_SYMBOL_NS
Rander Wang (3): soundwire: intel: add prepare support in sdw dai driver soundwire: intel: add trigger support in sdw dai driver soundwire: intel: add sdw_stream_setup helper for .startup callback
drivers/base/regmap/regmap-sdw.c | 4 +- drivers/soundwire/Makefile | 2 +- drivers/soundwire/bus.c | 2 +- drivers/soundwire/bus.h | 2 + drivers/soundwire/bus_type.c | 70 ++++--- drivers/soundwire/intel.c | 281 +++++++++++++++++++++----- drivers/soundwire/intel.h | 8 +- drivers/soundwire/intel_init.c | 312 ++++++++++++++++++++++------- drivers/soundwire/master.c | 64 ++++++ drivers/soundwire/slave.c | 10 +- include/linux/soundwire/sdw.h | 42 +++- include/linux/soundwire/sdw_type.h | 34 +++- 12 files changed, 668 insertions(+), 163 deletions(-) create mode 100644 drivers/soundwire/master.c