summaryrefslogtreecommitdiffstats
path: root/lib/logic_iomem.c
diff options
context:
space:
mode:
authorAidan MacDonald <aidanmacdonald.0x0@gmail.com>2022-10-23 15:33:20 +0100
committerMark Brown <broonie@kernel.org>2022-10-26 14:18:13 +0100
commit8b3a9ad86239f80ed569e23c3954a311f66481d6 (patch)
treea95f1ddb4389b0a0639ba6e1ccb512be9094d851 /lib/logic_iomem.c
parent2cfcc1085d3b7b7c893be41034853d4c63a41092 (diff)
downloadlinux-8b3a9ad86239f80ed569e23c3954a311f66481d6.tar.gz
linux-8b3a9ad86239f80ed569e23c3954a311f66481d6.tar.bz2
linux-8b3a9ad86239f80ed569e23c3954a311f66481d6.zip
ASoC: jz4740-i2s: Handle independent FIFO flush bits
On the JZ4740, there is a single bit that flushes (empties) both the transmit and receive FIFO. Later SoCs have independent flush bits for each FIFO. Independent FIFOs can be flushed before the snd_soc_dai_active() check because it won't disturb other active streams. This ensures that the FIFO we're about to use is always flushed before starting up. With shared FIFOs we can't do that because if another substream is active, flushing its FIFO would cause underrun errors. This also fixes a bug: since we were only setting the JZ4740's flush bit, which corresponds to the TX FIFO flush bit on other SoCs, other SoCs were not having their RX FIFO flushed at all. Fixes: 967beb2e8777 ("ASoC: jz4740: Add jz4780 support") Reviewed-by: Paul Cercueil <paul@crapouillou.net> Cc: stable@vger.kernel.org Signed-off-by: Aidan MacDonald <aidanmacdonald.0x0@gmail.com> Link: https://lore.kernel.org/r/20221023143328.160866-2-aidanmacdonald.0x0@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'lib/logic_iomem.c')
0 files changed, 0 insertions, 0 deletions