static u64 at32_pcm_dmamask = 0xffffffff;
 
 static int at32_pcm_new(struct snd_card *card,
-                       struct snd_soc_codec_dai *dai,
+                       struct snd_soc_dai *dai,
                        struct snd_pcm *pcm)
 {
        int ret = 0;
 
 #ifdef CONFIG_PM
 static int at32_pcm_suspend(struct platform_device *pdev,
-                           struct snd_soc_cpu_dai *dai)
+                           struct snd_soc_dai *dai)
 {
        struct snd_pcm_runtime *runtime = dai->runtime;
        struct at32_runtime_data *prtd;
 
 
 static int at32_pcm_resume(struct platform_device *pdev,
-                          struct snd_soc_cpu_dai *dai)
+                          struct snd_soc_dai *dai)
 {
        struct snd_pcm_runtime *runtime = dai->runtime;
        struct at32_runtime_data *prtd;
 
 /*
  * Set the SSC system clock rate
  */
-static int at32_ssc_set_dai_sysclk(struct snd_soc_cpu_dai *cpu_dai,
+static int at32_ssc_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
                                   int clk_id, unsigned int freq, int dir)
 {
        /* TODO: What the heck do I do here? */
 /*
  * Record DAI format for use by hw_params()
  */
-static int at32_ssc_set_dai_fmt(struct snd_soc_cpu_dai *cpu_dai,
+static int at32_ssc_set_dai_fmt(struct snd_soc_dai *cpu_dai,
                                unsigned int fmt)
 {
        struct at32_ssc_info *ssc_p = &ssc_info[cpu_dai->id];
 /*
  * Record SSC clock dividers for use in hw_params()
  */
-static int at32_ssc_set_dai_clkdiv(struct snd_soc_cpu_dai *cpu_dai,
+static int at32_ssc_set_dai_clkdiv(struct snd_soc_dai *cpu_dai,
                                   int div_id, int div)
 {
        struct at32_ssc_info *ssc_p = &ssc_info[cpu_dai->id];
 
 #ifdef CONFIG_PM
 static int at32_ssc_suspend(struct platform_device *pdev,
-                           struct snd_soc_cpu_dai *cpu_dai)
+                           struct snd_soc_dai *cpu_dai)
 {
        struct at32_ssc_info *ssc_p;
 
 
 
 static int at32_ssc_resume(struct platform_device *pdev,
-                          struct snd_soc_cpu_dai *cpu_dai)
+                          struct snd_soc_dai *cpu_dai)
 {
        struct at32_ssc_info *ssc_p;
        u32 cr;
      SNDRV_PCM_FMTBIT_S24 | SNDRV_PCM_FMTBIT_S32)
 
 
-struct snd_soc_cpu_dai at32_ssc_dai[NUM_SSC_DEVICES] = {
+struct snd_soc_dai at32_ssc_dai[NUM_SSC_DEVICES] = {
        {
         .name = "at32-ssc0",
         .id = 0,
 
 #define AT32_SSC_RCMR_PERIOD    2      /* BCLK divider for receive FS */
 
 
-extern struct snd_soc_cpu_dai at32_ssc_dai[];
+extern struct snd_soc_dai at32_ssc_dai[];
 
 
 
 
 #if defined CONFIG_SND_AT32_SOC_PLAYPAQ_SLAVE
 static struct ssc_clock_data playpaq_wm8510_calc_ssc_clock(
        struct snd_pcm_hw_params *params,
-       struct snd_soc_cpu_dai *cpu_dai)
+       struct snd_soc_dai *cpu_dai)
 {
        struct at32_ssc_info *ssc_p = cpu_dai->private_data;
        struct ssc_device *ssc = ssc_p->ssc;
                                    struct snd_pcm_hw_params *params)
 {
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
-       struct snd_soc_codec_dai *codec_dai = rtd->dai->codec_dai;
-       struct snd_soc_cpu_dai *cpu_dai = rtd->dai->cpu_dai;
+       struct snd_soc_dai *codec_dai = rtd->dai->codec_dai;
+       struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
        struct at32_ssc_info *ssc_p = cpu_dai->private_data;
        struct ssc_device *ssc = ssc_p->ssc;
        unsigned int pll_out = 0, bclk = 0, mclk_div = 0;