FAILED: patch "[PATCH] ASoC: fsl_ssi: Fix TDM slot setup for I2S mode" failed to apply to 4.9-stable tree
Subsystems (4)
[email protected]
maintainerThe patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 87263968516fb9507d6215d53f44052627fae8d8 Mon Sep 17 00:00:00 2001
From: Alexander Shiyan <[email protected]>
Date: Tue, 16 Feb 2021 14:42:21 +0300
Subject: [PATCH] ASoC: fsl_ssi: Fix TDM slot setup for I2S mode
When using the driver in I2S TDM mode, the _fsl_ssi_set_dai_fmt() function rewrites the number of slots previously set by the fsl_ssi_set_dai_tdm_slot() function to 2 by default.
To fix this, let's use the saved slot count value or, if TDM is not used and the slot count is not set, proceed as before.
sound/soc/fsl/fsl_ssi.c +4 -2
@@ -878,6 +878,7 @@ static int fsl_ssi_hw_free(struct snd_pcm_substream *substream,static int _fsl_ssi_set_dai_fmt (struct fsl_ssi *ssi,unsigned int fmt) {u32 strcr =0 , scr =0 , stcr, srcr, mask; +unsigned int slots; ssi->dai_fmt = fmt;
@@ -909,10 +910,11 @@ static int _fsl_ssi_set_dai_fmt(struct fsl_ssi *ssi, unsigned int fmt)return -EINVAL ; } + slots = ssi->slots ? :2 ;regmap_update_bits (ssi->regs,REG_SSI_STCCR , - SSI_SxCCR_DC_MASK,SSI_SxCCR_DC (2 )); + SSI_SxCCR_DC_MASK,SSI_SxCCR_DC (slots));regmap_update_bits (ssi->regs,REG_SSI_SRCCR , - SSI_SxCCR_DC_MASK,SSI_SxCCR_DC (2 )); + SSI_SxCCR_DC_MASK,SSI_SxCCR_DC (slots));/* Data on rising edge of bclk, frame low, 1clk before data */ strcr |=SSI_STCR_TFSI |SSI_STCR_TSCKP |SSI_STCR_TEFS ;