linux/sound/soc/rockchip
Nicolas Frattaroli 0ea15e98cf
ASoC: rockchip: i2s-tdm: Fix refcount test
During development of V5 of the i2s-tdm patch series, I replaced
the atomic refcount with a regular integer, as it was only ever
accessed within a spinlock.

Foolishly, I got the semantics of atomic_dec_and_test wrong, which
resulted in a test for 0 actually becoming a test for >0.

The result was that setting the audio frequency broke; switching
from 44100 Hz audio playback to 96000 Hz audio playback would
garble the sound most unpleasantly.

Fix this by checking for --refcount == 0, which is what it should
have been all along.

Fixes: 081068fd64 ("ASoC: rockchip: add support for i2s-tdm controller")
Signed-off-by: Nicolas Frattaroli <frattaroli.nicolas@gmail.com>
Link: https://lore.kernel.org/r/20211015210730.308946-1-frattaroli.nicolas@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2021-10-18 13:56:44 +01:00
..
Kconfig ASoC: rockchip: add support for i2s-tdm controller 2021-10-07 16:58:16 +01:00
Makefile ASoC: rockchip: add support for i2s-tdm controller 2021-10-07 16:58:16 +01:00
rk3288_hdmi_analog.c ASoC: rockchip: use asoc_substream_to_rtd() 2020-07-23 19:07:29 +01:00
rk3399_gru_sound.c ASoC: rk3399_gru_sound: Add DAPM pins, kcontrols for jack detection 2020-07-30 22:54:39 +01:00
rockchip_i2s_tdm.c ASoC: rockchip: i2s-tdm: Fix refcount test 2021-10-18 13:56:44 +01:00
rockchip_i2s_tdm.h ASoC: rockchip: add support for i2s-tdm controller 2021-10-07 16:58:16 +01:00
rockchip_i2s.c ASoC: rockchip: i2s: Fix concurrency between tx/rx 2021-09-03 16:19:01 +01:00
rockchip_i2s.h ASoC: rockchip: i2s: Add support for frame inversion 2021-08-26 13:59:40 +01:00
rockchip_max98090.c ASoC: hdmi-codec: Use set_jack ops to set jack 2020-09-22 12:48:03 +01:00
rockchip_pcm.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rockchip_pcm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
rockchip_pdm.c ASoC: rockchip: pdm: Add support for path map 2021-09-13 01:44:10 +01:00
rockchip_pdm.h ASoC: rockchip: pdm: Add support for path map 2021-09-13 01:44:10 +01:00
rockchip_rt5645.c ASoC: rockchip: use asoc_substream_to_rtd() 2020-07-23 19:07:29 +01:00
rockchip_spdif.c ASoC: rockchip: spdif: Add support for rk3568 spdif 2021-08-26 13:56:56 +01:00
rockchip_spdif.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00