[PATCH v4 12/22] ASoC: tegra20: spdif: Filter out unsupported rates
Thierry Reding
thierry.reding at gmail.com
Thu Dec 16 16:30:29 CET 2021
On Sat, Dec 04, 2021 at 05:37:15PM +0300, Dmitry Osipenko wrote:
> SPDIF and other SoC components share audio PLL on Tegra, thus only one
> component may set the desired base clock rate. This creates problem for
> HDMI audio because it uses SPDIF and audio may not work if SPDIF's clock
> doesn't exactly match standard audio rate since some receivers may reject
> audio in that case. Filter out audio rates which SPDIF output can't
> support, assuming that other components won't change rate at runtime.
>
> Signed-off-by: Dmitry Osipenko <digetx at gmail.com>
> ---
> sound/soc/tegra/tegra20_spdif.c | 61 +++++++++++++++++++++++++++++++++
> 1 file changed, 61 insertions(+)
>
> diff --git a/sound/soc/tegra/tegra20_spdif.c b/sound/soc/tegra/tegra20_spdif.c
> index a4aa5614aef4..d09cd7ee6879 100644
> --- a/sound/soc/tegra/tegra20_spdif.c
> +++ b/sound/soc/tegra/tegra20_spdif.c
> @@ -79,6 +79,7 @@ static int tegra20_spdif_hw_params(struct snd_pcm_substream *substream,
> struct tegra20_spdif *spdif = dev_get_drvdata(dai->dev);
> unsigned int mask = 0, val = 0;
> int ret, spdifclock;
> + long rate;
Perhaps we should change spdifclock to be "long" as well, even though
they're the same on Tegra20. SND_SOC_TEGRA depends on || COMPILE_TEST,
so technically somebody could build this on 64-bit and then these are
no longer the same types.
Still shouldn't be problematic given the numbers that are passed in,
but it'd still be nice to keep consistent types for these.
>
> mask |= TEGRA20_SPDIF_CTRL_PACK |
> TEGRA20_SPDIF_CTRL_BIT_MODE_MASK;
> @@ -133,6 +134,12 @@ static int tegra20_spdif_hw_params(struct snd_pcm_substream *substream,
> return ret;
> }
>
> + rate = clk_get_rate(spdif->clk_spdif_out);
> + if (rate != spdifclock)
> + dev_warn_once(dai->dev,
> + "SPDIF clock rate %d doesn't match requested rate %lu\n",
That should be %ld since it's not unsigned.
Otherwise, looks good. Probably not worth respinning for just these
minor comments, so:
Acked-by: Thierry Reding <treding at nvidia.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20211216/22c4164d/attachment.sig>
More information about the Alsa-devel
mailing list