From: Dmitry Osipenko <digetx@gmail.com>
To: Thierry Reding <thierry.reding@gmail.com>,
Jonathan Hunter <jonathanh@nvidia.com>,
Mark Brown <broonie@kernel.org>, Takashi Iwai <tiwai@suse.com>,
Jaroslav Kysela <perex@perex.cz>,
Liam Girdwood <lgirdwood@gmail.com>, Agneli <poczt@protonmail.ch>
Cc: linux-tegra@vger.kernel.org, alsa-devel@alsa-project.org,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org
Subject: [PATCH v5 04/11] ASoC: tegra20: spdif: Set FIFO trigger level
Date: Fri, 17 Dec 2021 20:55:59 +0300 [thread overview]
Message-ID: <20211217175606.22645-5-digetx@gmail.com> (raw)
In-Reply-To: <20211217175606.22645-1-digetx@gmail.com>
FIFO trigger level must be bigger than or equal to the size of DMA burst,
otherwise audio will be played x4 faster than it should be because part of
the DMA data will be dropped on FIFO input buffer overflow.
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
---
sound/soc/tegra/tegra20_spdif.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/sound/soc/tegra/tegra20_spdif.c b/sound/soc/tegra/tegra20_spdif.c
index 57a6c576b91f..e45e371edc42 100644
--- a/sound/soc/tegra/tegra20_spdif.c
+++ b/sound/soc/tegra/tegra20_spdif.c
@@ -69,6 +69,14 @@ static int tegra20_spdif_hw_params(struct snd_pcm_substream *substream,
regmap_update_bits(spdif->regmap, TEGRA20_SPDIF_CTRL, mask, val);
+ /*
+ * FIFO trigger level must be bigger than DMA burst or equal to it,
+ * otherwise data is discarded on overflow.
+ */
+ regmap_update_bits(spdif->regmap, TEGRA20_SPDIF_DATA_FIFO_CSR,
+ TEGRA20_SPDIF_DATA_FIFO_CSR_TX_ATN_LVL_MASK,
+ TEGRA20_SPDIF_DATA_FIFO_CSR_TX_ATN_LVL_TU4_WORD_FULL);
+
switch (params_rate(params)) {
case 32000:
spdifclock = 4096000;
--
2.33.1
next prev parent reply other threads:[~2021-12-17 17:58 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-17 17:55 [PATCH v5 00/11] Support HDMI audio on NVIDIA Tegra20 Dmitry Osipenko
2021-12-17 17:55 ` [PATCH v5 01/11] ASoC: dt-bindings: Add binding for Tegra20 S/PDIF Dmitry Osipenko
2021-12-17 17:55 ` [PATCH v5 02/11] ASoC: dt-bindings: tegra20-i2s: Convert to schema Dmitry Osipenko
2021-12-17 17:55 ` [PATCH v5 03/11] ASoC: dt-bindings: tegra20-i2s: Document new nvidia,fixed-parent-rate property Dmitry Osipenko
2021-12-17 17:55 ` Dmitry Osipenko [this message]
2021-12-17 17:56 ` [PATCH v5 05/11] ASoC: tegra20: spdif: Support device-tree Dmitry Osipenko
2021-12-17 17:56 ` [PATCH v5 06/11] ASoC: tegra20: spdif: Improve driver's code Dmitry Osipenko
2021-12-17 17:56 ` [PATCH v5 07/11] ASoC: tegra20: spdif: Use more resource-managed helpers Dmitry Osipenko
2021-12-17 17:56 ` [PATCH v5 08/11] ASoC: tegra20: spdif: Reset hardware Dmitry Osipenko
2021-12-17 17:56 ` [PATCH v5 09/11] ASoC: tegra20: spdif: Support system suspend Dmitry Osipenko
2021-12-17 17:56 ` [PATCH v5 10/11] ASoC: tegra20: spdif: Filter out unsupported rates Dmitry Osipenko
2021-12-17 17:56 ` [PATCH v5 11/11] ASoC: tegra20: i2s: " Dmitry Osipenko
2021-12-17 18:05 ` [PATCH v5 00/11] Support HDMI audio on NVIDIA Tegra20 Dmitry Osipenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211217175606.22645-5-digetx@gmail.com \
--to=digetx@gmail.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jonathanh@nvidia.com \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=perex@perex.cz \
--cc=poczt@protonmail.ch \
--cc=thierry.reding@gmail.com \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox