Repository navigation
J616s audio: #406 review follow-ups (tas2764 sleep scope, speaker lock trigger, AOP regions from memory-region) - #419
Merged
Conversation
"ASoC: tas2764: keep SDZ high across system sleep" changed suspend and resume for every TAS2764 and SN012776 amp, but it has only run on the J616s, whose six amps share one SDZ supply as an SDZ group. The M1 and M2 machines also use this driver and have not been tested with the amps left in software shutdown across sleep. Leave SDZ high only for amps in an SDZ group. Amps outside a group drop SDZ on suspend and raise it on resume, as before. Losing the page-0xfd quirk writes over sleep on those machines stays a separate fix. When a group has failed, its supply was forced off and no enable is left for codec_remove() to balance, so skip the disable there. Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
…lock When a speaker volume lock fails, prepares are refused and the stop work moves every running playback stream to XRUN. A stream whose prepare passed just before the failure was recorded, and which was not yet PREPARED when the stop work walked the card, could still be started. Refuse START, RESUME and PAUSE_RELEASE of any playback stream in the front-end trigger once the lock has failed. The stop walk also visited back-end runtimes, whose substream shares the front-end's runtime. That was only harmless because the front-end links come first in the card's list. Skip no_pcm links there. Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
…acOS symbols The comments on the T6040 microphone flow named a macOS class and method. Say what is sent instead: the property and the ADT masks it carries are the facts the code relies on. Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
The schema lists the apple,t6030-aop-audio fallback, so dtbs_check also applied it to the T6030, T6031 and T8122 AOP audio nodes, which carry that fallback but only a microphone stream. They then failed on the T6041 compatible, the DMA list and #sound-dai-cells. Select the schema by the T6041 compatible only. Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
The AOP firmware runs its external code and its log from DRAM. Describe those segments as memory-region entries, which the bootloader fills in from the ADT, with the address the firmware uses for each one in the region's iommu-addresses, as for the other Apple coprocessors whose firmware the bootloader loads. This replaces the aop-etext and aop-oslog reserved-memory nodes that the description named, which no binding defined and nothing referred to. Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
On the T6040 the driver found the firmware's external code and log segments by looking for /reserved-memory nodes named aop-etext and aop-oslog, and mapped them with iommu_map() into the device's DMA API domain, without its IOVA allocator knowing about them. Take them from the AOP's memory-region instead, which is how the bootloader describes the firmware of the other Apple coprocessors. Each region's iommu-addresses gives the IOVA the firmware uses. The IOMMU core already maps such regions in the default domain when the device is added, one to one for the log and translated for the external code, and keeps their IOVAs out of the allocator, so the driver no longer maps or unmaps anything itself. Before the firmware is started, check that every page of every region is mapped where the DT says, that one region sits at EC0p and that any other one is mapped at its physical address, and refuse to start it otherwise. The check now runs before anything is set up, so a missing region no longer ends in a failed shutdown of an AOP that never ran. The other AOP generations are unchanged. Assisted-by: LLM Signed-off-by: Ryan Murray <ryan@aurorasilicon.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
Follow-ups to #406 (jgoyvaerts, J616s audio, merged as 1a49c3e), from our review and our J616s testing.
Tested:
🤖 Generated with Claude Code