kabylake_audio_card->dev = &pdev->dev;
        snd_soc_card_set_drvdata(kabylake_audio_card, ctx);
 
-       mach = dev_get_drvdata(&pdev->dev);
+       mach = (&pdev->dev)->platform_data;
        if (mach)
                dmic_constraints = mach->mach_params.dmic_num == 2 ?
                        &constraints_dmic_2ch : &constraints_dmic_channels;
 
        kabylake_audio_card.dev = &pdev->dev;
        snd_soc_card_set_drvdata(&kabylake_audio_card, ctx);
 
-       mach = dev_get_drvdata(&pdev->dev);
+       mach = (&pdev->dev)->platform_data;
        if (mach)
                dmic_constraints = mach->mach_params.dmic_num == 2 ?
                        &constraints_dmic_2ch : &constraints_dmic_channels;
 
 
        INIT_LIST_HEAD(&ctx->hdmi_pcm_list);
 
-       mach = dev_get_drvdata(&pdev->dev);
+       mach = (&pdev->dev)->platform_data;
        if (!mach)
                return -EINVAL;
 
 
        skylake_audio_card.dev = &pdev->dev;
        snd_soc_card_set_drvdata(&skylake_audio_card, ctx);
 
-       mach = dev_get_drvdata(&pdev->dev);
+       mach = (&pdev->dev)->platform_data;
        if (mach)
                dmic_constraints = mach->mach_params.dmic_num == 2 ?
                        &constraints_dmic_2ch : &constraints_dmic_channels;
 
        skylake_audio_card.dev = &pdev->dev;
        snd_soc_card_set_drvdata(&skylake_audio_card, ctx);
 
-       mach = dev_get_drvdata(&pdev->dev);
+       mach = (&pdev->dev)->platform_data;
        if (mach)
                dmic_constraints = mach->mach_params.dmic_num == 2 ?
                        &constraints_dmic_2ch : &constraints_dmic_channels;
 
                return -EIO;
        }
 
+       mach->mach_params.platform = dev_name(bus->dev);
+       mach->mach_params.codec_mask = bus->codec_mask;
+
+       ret = platform_device_add_data(pdev, (const void *)mach, sizeof(*mach));
+       if (ret) {
+               dev_err(bus->dev, "failed to add machine device platform data\n");
+               platform_device_put(pdev);
+               return ret;
+       }
+
        ret = platform_device_add(pdev);
        if (ret) {
                dev_err(bus->dev, "failed to add machine device\n");
                return -EIO;
        }
 
-       mach->mach_params.platform = dev_name(bus->dev);
-       mach->mach_params.codec_mask = bus->codec_mask;
-       dev_set_drvdata(&pdev->dev, mach);
 
        skl->i2s_dev = pdev;