]> git.baikalelectronics.ru Git - kernel.git/commit
ASoC: fsl_ssi: Fix clock control issue in master mode
authorShengjiu Wang <shengjiu.wang@nxp.com>
Wed, 28 Aug 2019 17:20:17 +0000 (13:20 -0400)
committerMark Brown <broonie@kernel.org>
Thu, 29 Aug 2019 19:14:11 +0000 (20:14 +0100)
commit56aa306fb6cd3b656e5c9382b137ffb188719334
treea1faf374f9c9c50c8790910c22fa4ce4ec108cf5
parent4bf1f6f04dabaf84bff71190eaf6c4c6f30289d3
ASoC: fsl_ssi: Fix clock control issue in master mode

The test case is
arecord -Dhw:0 -d 10 -f S16_LE -r 48000 -c 2 temp.wav &
aplay -Dhw:0 -d 30 -f S16_LE -r 48000 -c 2 test.wav

There will be error after end of arecord:
aplay: pcm_write:2051: write error: Input/output error

Capture and Playback work in parallel in master mode, one
substream stops, the other substream is impacted, the
reason is that clock is disabled wrongly.

The clock's reference count is not increased when second
substream starts, the hw_param() function returns in the
beginning because first substream is enabled, then in end
of first substream, the hw_free() disables the clock.

This patch is to move the clock enablement to the place
before checking of the device enablement in hw_param().

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1567012817-12625-1-git-send-email-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/fsl/fsl_ssi.c