From: Charles Keepax <ckeepax@opensource.cirrus.com>
To: Shengjiu Wang <shengjiu.wang@nxp.com>
Cc: <lgirdwood@gmail.com>, <broonie@kernel.org>, <perex@perex.cz>,
<tiwai@suse.com>, <kstewart@linuxfoundation.org>,
<allison@lohutok.net>, <tglx@linutronix.de>, <info@metux.net>,
<ckeepax@opensource.wolfsonmicro.com>,
<patches@opensource.cirrus.com>, <alsa-devel@alsa-project.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] ASoC: wm8960: Remove bitclk relax condition
Date: Tue, 2 Mar 2021 13:19:04 +0000 [thread overview]
Message-ID: <20210302131904.GC106851@ediswmail.ad.cirrus.com> (raw)
In-Reply-To: <1614683891-29255-1-git-send-email-shengjiu.wang@nxp.com>
On Tue, Mar 02, 2021 at 07:18:11PM +0800, Shengjiu Wang wrote:
> From: Daniel Baluta <daniel.baluta@nxp.com>
>
> Using a higher bitclk then expected doesn't always work.
> Here is an example:
>
> aplay -Dhw:0,0 -d 5 -r 48000 -f S24_LE -c 2 audio48k24b2c.wav
>
> In this case, the required bitclk is 48000 * 24 * 2 = 2304000
> but the closest bitclk that can be derived is 3072000. Since
> the clock is faster than expected, it will start to send bytes
> from the next channel so the sound will be corrupted.
>
> Fixes: 82bab88910ee ("ASoC: codec: wm8960: Relax bit clock computation when using PLL")
> Fixes: 3c01b9ee2ab9 ("ASoC: codec: wm8960: Relax bit clock computation")
> Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
> ---
I think this is probably going to need a much more involved fix.
The problem is that there are systems that depend on this
behaviour, so you can't just flat out revert it. And to be fair
the I2S specification says that bit clock can run at a higher
rate than required for the data, so the behaviour is correct as
well.
Probably the best solution here is to add additional contraints
from the machine driver on which rates/bit depths/channels are
supported.
Thanks,
Charles
WARNING: multiple messages have this Message-ID (diff)
From: Charles Keepax <ckeepax@opensource.cirrus.com>
To: Shengjiu Wang <shengjiu.wang@nxp.com>
Cc: kstewart@linuxfoundation.org, alsa-devel@alsa-project.org,
linux-kernel@vger.kernel.org, patches@opensource.cirrus.com,
tiwai@suse.com, lgirdwood@gmail.com, broonie@kernel.org,
tglx@linutronix.de, info@metux.net,
ckeepax@opensource.wolfsonmicro.com, allison@lohutok.net
Subject: Re: [PATCH] ASoC: wm8960: Remove bitclk relax condition
Date: Tue, 2 Mar 2021 13:19:04 +0000 [thread overview]
Message-ID: <20210302131904.GC106851@ediswmail.ad.cirrus.com> (raw)
In-Reply-To: <1614683891-29255-1-git-send-email-shengjiu.wang@nxp.com>
On Tue, Mar 02, 2021 at 07:18:11PM +0800, Shengjiu Wang wrote:
> From: Daniel Baluta <daniel.baluta@nxp.com>
>
> Using a higher bitclk then expected doesn't always work.
> Here is an example:
>
> aplay -Dhw:0,0 -d 5 -r 48000 -f S24_LE -c 2 audio48k24b2c.wav
>
> In this case, the required bitclk is 48000 * 24 * 2 = 2304000
> but the closest bitclk that can be derived is 3072000. Since
> the clock is faster than expected, it will start to send bytes
> from the next channel so the sound will be corrupted.
>
> Fixes: 82bab88910ee ("ASoC: codec: wm8960: Relax bit clock computation when using PLL")
> Fixes: 3c01b9ee2ab9 ("ASoC: codec: wm8960: Relax bit clock computation")
> Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
> Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
> ---
I think this is probably going to need a much more involved fix.
The problem is that there are systems that depend on this
behaviour, so you can't just flat out revert it. And to be fair
the I2S specification says that bit clock can run at a higher
rate than required for the data, so the behaviour is correct as
well.
Probably the best solution here is to add additional contraints
from the machine driver on which rates/bit depths/channels are
supported.
Thanks,
Charles
next prev parent reply other threads:[~2021-03-02 16:30 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-02 11:18 [PATCH] ASoC: wm8960: Remove bitclk relax condition Shengjiu Wang
2021-03-02 13:19 ` Charles Keepax [this message]
2021-03-02 13:19 ` Charles Keepax
2021-03-03 3:03 S.j. Wang
2021-03-03 3:03 ` S.j. Wang
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=20210302131904.GC106851@ediswmail.ad.cirrus.com \
--to=ckeepax@opensource.cirrus.com \
--cc=allison@lohutok.net \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=ckeepax@opensource.wolfsonmicro.com \
--cc=info@metux.net \
--cc=kstewart@linuxfoundation.org \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=patches@opensource.cirrus.com \
--cc=perex@perex.cz \
--cc=shengjiu.wang@nxp.com \
--cc=tglx@linutronix.de \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.