[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