[PATCH v5 00/17] soundwire: intel: implement new ASoC interfaces

From: Pierre-Louis Bossart
Date: Tue Dec 17 2019 - 16:05:19 EST


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

--
2.20.1