[PATCH v2 1/2] ASOC: rockchip: fix capture stream handling in rockchip_sai_xfer_stop
Nicolas Frattaroli
nicolas.frattaroli at collabora.com
Fri Jun 6 02:48:38 PDT 2025
On Friday, 6 June 2025 11:18:21 Central European Summer Time Pei Xiao wrote:
> Correcting the capture stream handling which was incorrectly setting
> playback=true for capture streams.
>
> The original code mistakenly set playback=true for capture streams,
> causing incorrect behavior.
>
> Fixes: cc78d1eaabad ("ASoC: rockchip: add Serial Audio Interface (SAI) driver")
> Signed-off-by: Pei Xiao <xiaopei01 at kylinos.cn>
> ---
> sound/soc/rockchip/rockchip_sai.c | 16 +++-------------
> 1 file changed, 3 insertions(+), 13 deletions(-)
>
> diff --git a/sound/soc/rockchip/rockchip_sai.c b/sound/soc/rockchip/rockchip_sai.c
> index 602f1ddfad00..916af63f1c2c 100644
> --- a/sound/soc/rockchip/rockchip_sai.c
> +++ b/sound/soc/rockchip/rockchip_sai.c
> @@ -378,19 +378,9 @@ static void rockchip_sai_xfer_start(struct rk_sai_dev *sai, int stream)
> static void rockchip_sai_xfer_stop(struct rk_sai_dev *sai, int stream)
> {
> unsigned int msk = 0, val = 0, clr = 0;
> - bool playback;
> - bool capture;
> -
> - if (stream < 0) {
> - playback = true;
> - capture = true;
> - } else if (stream == SNDRV_PCM_STREAM_PLAYBACK) {
> - playback = true;
> - capture = false;
> - } else {
> - playback = true;
> - capture = false;
> - }
> + bool capture = stream == SNDRV_PCM_STREAM_CAPTURE || stream < 0;
> + bool playback = stream == SNDRV_PCM_STREAM_PLAYBACK || stream < 0;
> + /* could be <= 0 but we don't want to depend on enum values */
>
> if (playback) {
> msk |= SAI_XFER_TXS_MASK;
>
Tested-by: Nicolas Frattaroli <nicolas.frattaroli at collabora.com>
Acked-by: Nicolas Frattaroli <nicolas.frattaroli at collabora.com>
Thank you!
More information about the Linux-rockchip
mailing list