summaryrefslogtreecommitdiffstats
path: root/sound/firewire
diff options
context:
space:
mode:
authorMartin Povišer <povik+lin@cutebit.org>2023-02-24 16:33:01 +0100
committerMark Brown <broonie@kernel.org>2023-02-24 16:31:19 +0000
commitd8b3e396088d787771f19fd3b7949e080dc31d6f (patch)
treee46879578c397b27f106cad558d33181f9eef667 /sound/firewire
parentaaf5f0d76b6e1870e3674408de2b13a92a4d4059 (diff)
downloadlinux-stable-d8b3e396088d787771f19fd3b7949e080dc31d6f.tar.gz
linux-stable-d8b3e396088d787771f19fd3b7949e080dc31d6f.tar.bz2
linux-stable-d8b3e396088d787771f19fd3b7949e080dc31d6f.zip
ASoC: apple: mca: Fix SERDES reset sequence
Fix the reset sequence of reads and writes that we invoke from within the early trigger. It looks like there never was a SERDES_CONF_SOME_RST bit that should be involved in the reset sequence, and its presence in the driver code is a mistake from earlier. Instead, the reset sequence should go as follows: We should switch the the SERDES unit's SYNC_SEL mux to the value of 7 (so outside the range of 1...6 representing cluster's SYNCGEN units), then raise the RST bit in SERDES_STATUS and wait for it to clear. Properly resetting the SERDES unit fixes frame desynchronization hazard in case of long frames (longer than 4 used slots). The desynchronization manifests itself by rotating the PCM channels. Fixes: 3df5d0d97289 ("ASoC: apple: mca: Start new platform driver") Signed-off-by: Martin Povišer <povik+lin@cutebit.org> Link: https://lore.kernel.org/r/20230224153302.45365-2-povik+lin@cutebit.org Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/firewire')
0 files changed, 0 insertions, 0 deletions