/* For playback the AUDMIX is consumer, and for record is provider */
        switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
-       case SND_SOC_DAIFMT_CBP_CFP:
-       case SND_SOC_DAIFMT_CBC_CFC:
+       case SND_SOC_DAIFMT_BC_FC:
+       case SND_SOC_DAIFMT_BP_FP:
                break;
        default:
                return -EINVAL;
 }
 
 static const struct snd_soc_dai_ops fsl_audmix_dai_ops = {
-       .set_fmt      = fsl_audmix_dai_set_fmt,
+       .set_fmt_new  = fsl_audmix_dai_set_fmt,
        .trigger      = fsl_audmix_dai_trigger,
 };
 
 
 
        /* DAI clock provider masks */
        switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
-       case SND_SOC_DAIFMT_CBP_CFP:
+       case SND_SOC_DAIFMT_BC_FC:
                esai_priv->consumer_mode = true;
                break;
-       case SND_SOC_DAIFMT_CBC_CFP:
+       case SND_SOC_DAIFMT_BP_FC:
                xccr |= ESAI_xCCR_xCKD;
                break;
-       case SND_SOC_DAIFMT_CBP_CFC:
+       case SND_SOC_DAIFMT_BC_FP:
                xccr |= ESAI_xCCR_xFSD;
                break;
-       case SND_SOC_DAIFMT_CBC_CFC:
+       case SND_SOC_DAIFMT_BP_FP:
                xccr |= ESAI_xCCR_xFSD | ESAI_xCCR_xCKD;
                break;
        default:
        .trigger = fsl_esai_trigger,
        .hw_params = fsl_esai_hw_params,
        .set_sysclk = fsl_esai_set_dai_sysclk,
-       .set_fmt = fsl_esai_set_dai_fmt,
+       .set_fmt_new = fsl_esai_set_dai_fmt,
        .set_tdm_slot = fsl_esai_set_dai_tdm_slot,
 };
 
 
        }
 
        switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
-       case SND_SOC_DAIFMT_CBC_CFC:
+       case SND_SOC_DAIFMT_BP_FP:
                break;
        default:
                return -EINVAL;
        .startup = fsl_mqs_startup,
        .shutdown = fsl_mqs_shutdown,
        .hw_params = fsl_mqs_hw_params,
-       .set_fmt = fsl_mqs_set_dai_fmt,
+       .set_fmt_new = fsl_mqs_set_dai_fmt,
 };
 
 static struct snd_soc_dai_driver fsl_mqs_dai = {
 
 
        /* DAI clock provider masks */
        switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
-       case SND_SOC_DAIFMT_CBC_CFC:
+       case SND_SOC_DAIFMT_BP_FP:
                val_cr2 |= FSL_SAI_CR2_BCD_MSTR;
                val_cr4 |= FSL_SAI_CR4_FSD_MSTR;
                sai->is_consumer_mode = false;
                break;
-       case SND_SOC_DAIFMT_CBP_CFP:
+       case SND_SOC_DAIFMT_BC_FC:
                sai->is_consumer_mode = true;
                break;
-       case SND_SOC_DAIFMT_CBC_CFP:
+       case SND_SOC_DAIFMT_BP_FC:
                val_cr2 |= FSL_SAI_CR2_BCD_MSTR;
                sai->is_consumer_mode = false;
                break;
-       case SND_SOC_DAIFMT_CBP_CFC:
+       case SND_SOC_DAIFMT_BC_FP:
                val_cr4 |= FSL_SAI_CR4_FSD_MSTR;
                sai->is_consumer_mode = true;
                break;
 static const struct snd_soc_dai_ops fsl_sai_pcm_dai_ops = {
        .set_bclk_ratio = fsl_sai_set_dai_bclk_ratio,
        .set_sysclk     = fsl_sai_set_dai_sysclk,
-       .set_fmt        = fsl_sai_set_dai_fmt,
+       .set_fmt_new    = fsl_sai_set_dai_fmt,
        .set_tdm_slot   = fsl_sai_set_dai_tdm_slot,
        .hw_params      = fsl_sai_hw_params,
        .hw_free        = fsl_sai_hw_free,
 
  */
 #define FSLSSI_AC97_DAIFMT \
        (SND_SOC_DAIFMT_AC97 | \
-        SND_SOC_DAIFMT_CBM_CFS | \
+        SND_SOC_DAIFMT_BC_FP | \
         SND_SOC_DAIFMT_NB_NF)
 
 #define FSLSSI_SIER_DBG_RX_FLAGS \
 static bool fsl_ssi_is_i2s_clock_provider(struct fsl_ssi *ssi)
 {
        return (ssi->dai_fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) ==
-               SND_SOC_DAIFMT_CBC_CFC;
+               SND_SOC_DAIFMT_BP_FP;
 }
 
-static bool fsl_ssi_is_i2s_cbp_cfc(struct fsl_ssi *ssi)
+static bool fsl_ssi_is_i2s_bc_fp(struct fsl_ssi *ssi)
 {
        return (ssi->dai_fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) ==
-               SND_SOC_DAIFMT_CBP_CFC;
+               SND_SOC_DAIFMT_BC_FP;
 }
 
 /**
                u8 i2s_net = ssi->i2s_net;
 
                /* Normal + Network mode to send 16-bit data in 32-bit frames */
-               if (fsl_ssi_is_i2s_cbp_cfc(ssi) && sample_size == 16)
+               if (fsl_ssi_is_i2s_bc_fp(ssi) && sample_size == 16)
                        i2s_net = SSI_SCR_I2S_MODE_NORMAL | SSI_SCR_NET;
 
                /* Use Normal mode to send mono data at 1st slot of 2 slots */
        switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
        case SND_SOC_DAIFMT_I2S:
                switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
-               case SND_SOC_DAIFMT_CBC_CFC:
+               case SND_SOC_DAIFMT_BP_FP:
                        if (IS_ERR(ssi->baudclk)) {
                                dev_err(ssi->dev,
                                        "missing baudclk for master mode\n");
                                return -EINVAL;
                        }
                        fallthrough;
-               case SND_SOC_DAIFMT_CBP_CFC:
+               case SND_SOC_DAIFMT_BC_FP:
                        ssi->i2s_net |= SSI_SCR_I2S_MODE_MASTER;
                        break;
-               case SND_SOC_DAIFMT_CBP_CFP:
+               case SND_SOC_DAIFMT_BC_FC:
                        ssi->i2s_net |= SSI_SCR_I2S_MODE_SLAVE;
                        break;
                default:
 
        /* DAI clock provider masks */
        switch (fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) {
-       case SND_SOC_DAIFMT_CBC_CFC:
+       case SND_SOC_DAIFMT_BP_FP:
                /* Output bit and frame sync clocks */
                strcr |= SSI_STCR_TFDIR | SSI_STCR_TXDIR;
                scr |= SSI_SCR_SYS_CLK_EN;
                break;
-       case SND_SOC_DAIFMT_CBP_CFP:
+       case SND_SOC_DAIFMT_BC_FC:
                /* Input bit or frame sync clocks */
                break;
-       case SND_SOC_DAIFMT_CBP_CFC:
+       case SND_SOC_DAIFMT_BC_FP:
                /* Input bit clock but output frame sync clock */
                strcr |= SSI_STCR_TFDIR;
                break;
        .shutdown = fsl_ssi_shutdown,
        .hw_params = fsl_ssi_hw_params,
        .hw_free = fsl_ssi_hw_free,
-       .set_fmt = fsl_ssi_set_dai_fmt,
+       .set_fmt_new = fsl_ssi_set_dai_fmt,
        .set_tdm_slot = fsl_ssi_set_dai_tdm_slot,
        .trigger = fsl_ssi_trigger,
 };
 
        int ret, dir;
 
        /* For playback the AUDMIX is consumer, and for record is provider */
-       fmt |= tx ? SND_SOC_DAIFMT_CBC_CFC : SND_SOC_DAIFMT_CBP_CFP;
+       fmt |= tx ? SND_SOC_DAIFMT_BP_FP : SND_SOC_DAIFMT_BC_FC;
        dir  = tx ? SND_SOC_CLOCK_OUT : SND_SOC_CLOCK_IN;
 
        /* set DAI configuration */
                return 0;
 
        /* For playback the AUDMIX is consumer */
-       fmt |= SND_SOC_DAIFMT_CBP_CFP;
+       fmt |= SND_SOC_DAIFMT_BC_FC;
 
        /* set AUDMIX DAI configuration */
        ret = snd_soc_dai_set_fmt(asoc_rtd_to_cpu(rtd, 0), fmt);
 
                }
        }
 
-       ret = snd_soc_dai_set_fmt(cpu_dai, fmt);
+       ret = snd_soc_dai_set_fmt(cpu_dai, snd_soc_daifmt_clock_provider_flipped(fmt));
        if (ret && ret != -ENOTSUPP) {
                dev_err(dev, "failed to set cpu dai fmt: %d\n", ret);
                return ret;