Patch "ASoC: fsl_esai: Fix TDM slot setup for I2S mode" has been added to the 4.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ASoC: fsl_esai: Fix TDM slot setup for I2S mode

to the 4.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     asoc-fsl_esai-fix-tdm-slot-setup-for-i2s-mode.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit a535ac06d3966fb19d80e821bb32f52d8c0b7492
Author: Alexander Shiyan <shc_work@xxxxxxx>
Date:   Fri Apr 2 11:14:05 2021 +0300

    ASoC: fsl_esai: Fix TDM slot setup for I2S mode
    
    [ Upstream commit e7a48c710defa0e0fef54d42b7d9e4ab596e2761 ]
    
    When using the driver in I2S TDM mode, the fsl_esai_startup()
    function rewrites the number of slots previously set by the
    fsl_esai_set_dai_tdm_slot() function to 2.
    To fix this, let's use the saved slot count value or, if TDM
    is not used and the number of slots is not set, the driver will use
    the default value (2), which is set by fsl_esai_probe().
    
    Signed-off-by: Alexander Shiyan <shc_work@xxxxxxx>
    Acked-by: Nicolin Chen <nicoleotsuka@xxxxxxxxx>
    Link: https://lore.kernel.org/r/20210402081405.9892-1-shc_work@xxxxxxx
    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/soc/fsl/fsl_esai.c b/sound/soc/fsl/fsl_esai.c
index fa64cc2b1729..94bf497092b2 100644
--- a/sound/soc/fsl/fsl_esai.c
+++ b/sound/soc/fsl/fsl_esai.c
@@ -495,11 +495,13 @@ static int fsl_esai_startup(struct snd_pcm_substream *substream,
 				   ESAI_SAICR_SYNC, esai_priv->synchronous ?
 				   ESAI_SAICR_SYNC : 0);
 
-		/* Set a default slot number -- 2 */
+		/* Set slots count */
 		regmap_update_bits(esai_priv->regmap, REG_ESAI_TCCR,
-				   ESAI_xCCR_xDC_MASK, ESAI_xCCR_xDC(2));
+				   ESAI_xCCR_xDC_MASK,
+				   ESAI_xCCR_xDC(esai_priv->slots));
 		regmap_update_bits(esai_priv->regmap, REG_ESAI_RCCR,
-				   ESAI_xCCR_xDC_MASK, ESAI_xCCR_xDC(2));
+				   ESAI_xCCR_xDC_MASK,
+				   ESAI_xCCR_xDC(esai_priv->slots));
 	}
 
 	return 0;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux