diff --git a/sound/soc/rockchip/rockchip_sai.c b/sound/soc/rockchip/rockchip_sai.c index a226b4e576a7..99faa5890638 100644 --- a/sound/soc/rockchip/rockchip_sai.c +++ b/sound/soc/rockchip/rockchip_sai.c @@ -1081,6 +1081,9 @@ static int rockchip_sai_set_tdm_slot(struct snd_soc_dai *dai, { struct rk_sai_dev *sai = snd_soc_dai_get_drvdata(dai); + tx_mask ^= (BIT(slots) - 1); + rx_mask ^= (BIT(slots) - 1); + pm_runtime_get_sync(dai->dev); regmap_update_bits(sai->regmap, SAI_TXCR, SAI_XCR_SBW_MASK, SAI_XCR_SBW(slot_width));