break;
 
        case SND_SOC_BIAS_STANDBY:
-               if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) {
+               if (snd_soc_codec_get_bias_level(codec) == SND_SOC_BIAS_OFF) {
                        ret = regulator_bulk_enable(ARRAY_SIZE(wm8996->supplies),
                                                    wm8996->supplies);
                        if (ret != 0) {
                  wm8996_polarity_fn polarity_cb)
 {
        struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec);
-       struct snd_soc_dapm_context *dapm = &codec->dapm;
+       struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
 
        wm8996->jack = jack;
        wm8996->detecting = true;
 
 static void wm8996_hpdet_irq(struct snd_soc_codec *codec)
 {
+       struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
        struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec);
        int val, reg, report;
 
        snd_soc_update_bits(codec, WM8996_MIC_DETECT_1, WM8996_MICD_ENA,
                            WM8996_MICD_ENA);
 
-       snd_soc_dapm_disable_pin(&codec->dapm, "Bandgap");
-       snd_soc_dapm_sync(&codec->dapm);
+       snd_soc_dapm_disable_pin(dapm, "Bandgap");
+       snd_soc_dapm_sync(dapm);
 }
 
 static void wm8996_hpdet_start(struct snd_soc_codec *codec)
 {
+       struct snd_soc_dapm_context *dapm = snd_soc_codec_get_dapm(codec);
+
        /* Unclamp the output, we can't measure while we're shorting it */
        snd_soc_update_bits(codec, WM8996_ANALOGUE_HP_1,
                            WM8996_HPOUT1L_RMV_SHORT |
                            WM8996_HPOUT1R_RMV_SHORT);
 
        /* We need bandgap for HPDET */
-       snd_soc_dapm_force_enable_pin(&codec->dapm, "Bandgap");
-       snd_soc_dapm_sync(&codec->dapm);
+       snd_soc_dapm_force_enable_pin(dapm, "Bandgap");
+       snd_soc_dapm_sync(dapm);
 
        /* Go into headphone detect left mode */
        snd_soc_update_bits(codec, WM8996_MIC_DETECT_1, WM8996_MICD_ENA, 0);