static int msm_dai_q6_dai_mi2s_probe(struct snd_soc_dai *dai) { struct msm_dai_q6_dai_data *dai_data; int rc = 0; dai_data = kzalloc(sizeof(struct msm_dai_q6_dai_data), GFP_KERNEL); if (!dai_data) { dev_err(dai->dev, "DAI-%d: fail to allocate dai data\n", dai->id); rc = -ENOMEM; goto rtn; } else dev_set_drvdata(dai->dev, dai_data); rc = msm_dai_q6_mi2s_platform_data_validation(dai); if (rc != 0) { pr_err("%s: The msm_dai_q6_mi2s_platform_data_validation failed\n", __func__); kfree(dai_data); } rtn: return rc; }
static __devinit int msm_dai_q6_mi2s_dev_probe(struct platform_device *pdev) { struct msm_dai_q6_mi2s_dai_data *dai_data; int rc = 0; dev_dbg(&pdev->dev, "%s: pdev %p dev %p\n", __func__, pdev, &pdev->dev); dai_data = kzalloc(sizeof(struct msm_dai_q6_mi2s_dai_data), GFP_KERNEL); if (!dai_data) { dev_err(&pdev->dev, "fail to allocate dai data\n"); rc = -ENOMEM; goto rtn; } else dev_set_drvdata(&pdev->dev, dai_data); rc = msm_dai_q6_mi2s_platform_data_validation(pdev, &msm_dai_q6_mi2s_dai); if (IS_ERR_VALUE(rc)) goto err_pdata; dai_data->rate_constraint.count = 1; dai_data->bitwidth_constraint.count = 1; rc = snd_soc_register_dai(&pdev->dev, &msm_dai_q6_mi2s_dai); if (IS_ERR_VALUE(rc)) goto err_pdata; return 0; err_pdata: kfree(dai_data); rtn: return rc; }