static int evm_startup(struct snd_pcm_substream *substream)
 {
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
-       struct snd_soc_card *soc_card = rtd->codec->card;
+       struct snd_soc_card *soc_card = rtd->card;
        struct snd_soc_card_drvdata_davinci *drvdata =
                snd_soc_card_get_drvdata(soc_card);
 
 static void evm_shutdown(struct snd_pcm_substream *substream)
 {
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
-       struct snd_soc_card *soc_card = rtd->codec->card;
+       struct snd_soc_card *soc_card = rtd->card;
        struct snd_soc_card_drvdata_davinci *drvdata =
                snd_soc_card_get_drvdata(soc_card);
 
        struct snd_soc_pcm_runtime *rtd = substream->private_data;
        struct snd_soc_dai *codec_dai = rtd->codec_dai;
        struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
-       struct snd_soc_codec *codec = rtd->codec;
-       struct snd_soc_card *soc_card = codec->card;
+       struct snd_soc_card *soc_card = rtd->card;
        int ret = 0;
        unsigned sysclk = ((struct snd_soc_card_drvdata_davinci *)
                           snd_soc_card_get_drvdata(soc_card))->sysclk;
 {
        struct snd_soc_card *card = rtd->card;
        struct snd_soc_codec *codec = rtd->codec;
-       struct device_node *np = codec->card->dev->of_node;
+       struct device_node *np = card->dev->of_node;
        int ret;
 
        /* Add davinci-evm specific widgets */