From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
To: Jyri Sarha <jsarha@ti.com>, Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>
Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: hdmi-codec: modifying params in hw_params() callback
Date: Thu, 28 Feb 2019 12:15:16 +0000 [thread overview]
Message-ID: <20190228121516.swd3vweisgcxlvld@shell.armlinux.org.uk> (raw)
Hi all,
While looking at hdmi-codec issues, I spotted this code:
static int hdmi_codec_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params,
struct snd_soc_dai *dai)
{
...
if (params_width(params) > 24)
params->msbits = 24;
params->msbits is a parameter that is negotiated and refined by
libasound, and is part of the ALSA constraint system. The "Writing an
ALSA driver" documentation says about the hw_params callback:
"This is called when the hardware parameter (``hw_params``) is set up
by the application, that is, once when the buffer size, the period
size, the format, etc. are defined for the pcm substream."
which suggests we should only be reading the parameters, not writing
to them.
What's more is that the msbits is a parameter that is refined with
userspace, so surely the above should be a declared constraint?
Digging a bit deeper, ASoC passes a private copy of the params to each
codec - a copy is made, then fixups for TDM slots are applied, followed
by any topology fixups by the DAI link (be_hw_params_fixup) before the
codec driver's hw_params() callback is made. Afterwards, ASoC reads
back the rate, channels and physical (memory) width and stores them
in the codec's DAI structure. The msbits are not read.
hdmi-codec also seems to do nothing with the msbits parameter other
than the above code.
So, all in all, it seems that the above code limiting msbits is
redundant - nothing will read this modified value. Can we kill it?
Thanks.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2019-02-28 12:15 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-28 12:15 Russell King - ARM Linux admin [this message]
2019-02-28 12:54 ` hdmi-codec: modifying params in hw_params() callback Jyri Sarha
2019-02-28 13:10 ` Russell King - ARM Linux admin
2019-02-28 14:35 ` Jyri Sarha
2019-02-28 14:39 ` Russell King - ARM Linux admin
2019-02-28 14:41 ` Jyri Sarha
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=20190228121516.swd3vweisgcxlvld@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=jsarha@ti.com \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
/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