[PATCH V3 0/8] Add SoundWire support for AMD platforms

Vijendar Mukunda
2023-02-20T10:03:39Z

ACP IP(v6.x) block has two SoundWire manager instance support.
This patchset adds support for AMD SoundWire manager driver.

Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>

Changes since v2:
- Remove useless variable initializations.
- Add helper function to interpret peripheral status.
- Move runtime pm sequence to probe_work workqueue.
- Use string "SoundWire" instead of "soundwire" in code.
- Update comments in interrupt handler and probe sequence.
- Rename "sdw_lock" as "acp_sdw_lock".
- Remove __func__ from dev_dbg statements.

Changes since v1:
- Drop asoc tree based patches. will send asoc patches as a separate series.
- Fixed double space errors.
- Use dev instead of pci->dev.
- Use SoundWire manager terminology.
- Remove amd_sdw_compute_slave_ports() function and use exported
sdw_compute_slave_ports() function.
- Remove unused variable "num_ports" from amd_manager structure.
- Drop startup and shutdown dai callbacks.
- Drop reset_page_addr callback. - Use relative address offset to program SoundWire manager
registers throughout the code.
- Separate wake enable interrupt handling from slave status handling logic.
- Use acp_mmio to program ACP common registers.
- Use dai_runtime_array implementation in dai_ops.
- Refactor port_ops callbacks.
- Add comments in port_ops callbacks.
- Add retry count logic in irq thread to address faulty case.
- Add helper function to interpret command response.
- Add generic bandwidth allocation dependency in Kconfig options.
- Add comments for AMD SoundWire power modes.
- Add missing timeout check in amd_init_sdw_manager callback.
- Declare frameshape parameters in probe call.
- Handle error case in clock stop sequence.
- Add comments in pm_prepare and pm_ops callbacks.

Vijendar Mukunda (8):
soundwire: export sdw_compute_slave_ports() function
soundwire: amd: Add support for AMD Manager driver
soundwire: amd: register SoundWire manager dai ops
soundwire: amd: enable build for AMD SoundWire manager driver
soundwire: amd: add SoundWire manager interrupt handling
soundwire: amd: add runtime pm ops for AMD SoundWire manager driver
soundwire: amd: handle SoundWire wake enable interrupt
soundwire: amd: add pm_prepare callback and pm ops support

drivers/soundwire/Kconfig | 10 +
drivers/soundwire/Makefile | 4 +
drivers/soundwire/amd_manager.c | 1335 +++++++++++++++++
drivers/soundwire/amd_manager.h | 275 ++++
drivers/soundwire/bus.h | 9 +
.../soundwire/generic_bandwidth_allocation.c | 12 +-
include/linux/soundwire/sdw_amd.h | 108 ++
7 files changed, 1744 insertions(+), 9 deletions(-)
create mode 100644 drivers/soundwire/amd_manager.c
create mode 100644 drivers/soundwire/amd_manager.h
create mode 100644 include/linux/soundwire/sdw_amd.h

--
2.34.1