BCM2835_I2S_CS_A_REG, mask, 0);
 
        /* Stop also the clock when not SND_SOC_DAIFMT_CONT */
-       if (!dai->active && !(dev->fmt & SND_SOC_DAIFMT_CONT))
+       if (!snd_soc_dai_active(dai) && !(dev->fmt & SND_SOC_DAIFMT_CONT))
                bcm2835_i2s_stop_clock(dev);
 }
 
 {
        struct bcm2835_i2s_dev *dev = snd_soc_dai_get_drvdata(dai);
 
-       if (dai->active)
+       if (snd_soc_dai_active(dai))
                return 0;
 
        /* Should this still be running stop it */
        bcm2835_i2s_stop(dev, substream, dai);
 
        /* If both streams are stopped, disable module and clock */
-       if (dai->active)
+       if (snd_soc_dai_active(dai))
                return;
 
        /* Disable the module */
 
 {
        struct cygnus_aio_port *aio = cygnus_dai_get_portinfo(cpu_dai);
 
-       if (!cpu_dai->active)
+       if (!snd_soc_dai_active(cpu_dai))
                return 0;
 
        if (!aio->is_slave) {
        struct cygnus_aio_port *aio = cygnus_dai_get_portinfo(cpu_dai);
        int error;
 
-       if (!cpu_dai->active)
+       if (!snd_soc_dai_active(cpu_dai))
                return 0;
 
        if (!aio->is_slave) {