ASoC: SOF: amd: SoundWire support and fixes for ACP7.B/7.F - #5931
Open
vijendarmukunda wants to merge 0 commit into
Open
ASoC: SOF: amd: SoundWire support and fixes for ACP7.B/7.F#5931vijendarmukunda wants to merge 0 commit into
vijendarmukunda wants to merge 0 commit into
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This series adds SoundWire support for the ACP7.B and ACP7.F platforms
and fixes three pre-existing bugs in the ACP SOF driver.
Patches 1-3 are standalone bug fixes:
Patch 1 corrects the error-return path in amd_sof_acp7x_suspend() so
that an unrecognised PCI revision returns -EINVAL instead of silently
leaving ACP_CONTROL with a stale value.
Patch 2 fixes the teardown ordering in amd_sof_acp_remove(): free_irq()
is moved before amd_sof_sdw_exit() to prevent a use-after-free when an
IRQ fires after the SoundWire context has been freed.
Patch 3 fixes the equivalent ordering in the error unwind path of
amd_sof_acp_probe() for the same reason.
Patches 4-11 add SoundWire support for ACP7.B/7.F:
ACP7.B/7.F exposes four SoundWire manager instances (SDW0-SDW3),
compared to the two managers found on ACP63/ACP70/ACP71/ACP72.
Patch 4 scans the ACPI DSDT for PDM controller endpoints and propagates
the selection to the machine driver via mach->pdata.
Patch 5 populates the SoundWire descriptor fields in acp7x_chip_info so
the SOF core can enumerate the four managers.
Patch 6 enables the SND_SOC_SOF_AMD_SOUNDWIRE_LINK_BASELINE Kconfig
dependency for SND_SOC_SOF_AMD_ACP7X.
Patch 7 wires amd_sof_sdw_probe() and amd_sof_sdw_exit() into the
ACP7.B/7.F probe and remove paths with the correct IRQ ordering.
Patch 8 extends check_acp_sdw_enable_status() to read all four SW_EN
registers on ACP7.B/7.F for clock-stop detection.
Patch 9 adds the ACP7.B/7.F SoundWire IRQ handler, dispatching
per-manager data IRQs, host-wake and PME events, and error conditions
across all four managers.
Patch 10 enables the host-wake interrupt mask in acp_init() for each
ACP7.B/7.F manager that has SW_WAKE_EN set.
Patch 11 adds SoundWire PM callbacks for ACP7.B/7.F: a clock-stop fast
path through suspend/resume that preserves SoundWire bus state, and
separate runtime PM callbacks that clear PME state on runtime resume.