--- Begin Message ---
- To: <vkoul@xxxxxxxxxx>
- Subject: [PATCH V7 0/8] Add SoundWire support for AMD platforms
- From: Vijendar Mukunda <Vijendar.Mukunda@xxxxxxx>
- Date: Fri, 10 Mar 2023 21:55:46 +0530
- Cc: alsa-devel@xxxxxxxxxxxxxxxx, pierre-louis.bossart@xxxxxxxxxxxxxxx, Basavaraj.Hiregoudar@xxxxxxx, Sunil-kumar.Dommati@xxxxxxx, Mario.Limonciello@xxxxxxx, amadeuszx.slawinski@xxxxxxxxxxxxxxx, Mastan.Katragadda@xxxxxxx, Arungopal.kondaveeti@xxxxxxx, claudiu.beznea@xxxxxxxxxxxxx, Vijendar Mukunda <Vijendar.Mukunda@xxxxxxx>
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@xxxxxxx>
changes since v6:
- remove pm suspend check in amd_resume_child_device()
and always return 0.
- use same name convention for command and response
variables.
changes since v5:
- replace loops logic with read_poll_timeout()
throughout the code.
changes since v4:
- fix nit-picks in the code.
- update naming convention for control word and response
buffer vairables.
- drop pm_suspend check in prepare callback.
- use return statement instead of returning ret variable.
changes since v3:
- add usleep_range() in command/response implementation.
- add usleep_range() in clock stop sequence.
- modify usleep_range() values throughout the code.
- remove unncessary debug statement from code.
- update comment in probe() call.
- fix timeout condition checks in the code.
- drop "ret" variable in amd_disable_sdw_manager().
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 | 1244 +++++++++++++++++
drivers/soundwire/amd_manager.h | 274 ++++
drivers/soundwire/bus.h | 9 +
.../soundwire/generic_bandwidth_allocation.c | 12 +-
include/linux/soundwire/sdw_amd.h | 109 ++
7 files changed, 1653 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
--- End Message ---