regmap_write(sai->regmap, FSL_SAI_RCSR, 0);
 
        regmap_update_bits(sai->regmap, FSL_SAI_TCR1, FSL_SAI_CR1_RFW_MASK,
-                          FSL_SAI_MAXBURST_TX * 2);
+                          sai->soc_data->fifo_depth - FSL_SAI_MAXBURST_TX);
        regmap_update_bits(sai->regmap, FSL_SAI_RCR1, FSL_SAI_CR1_RFW_MASK,
                           FSL_SAI_MAXBURST_RX - 1);
 
 
 static const struct fsl_sai_soc_data fsl_sai_vf610_data = {
        .use_imx_pcm = false,
+       .fifo_depth = 32,
 };
 
 static const struct fsl_sai_soc_data fsl_sai_imx6sx_data = {
        .use_imx_pcm = true,
+       .fifo_depth = 32,
 };
 
 static const struct of_device_id fsl_sai_ids[] = {