static int imx_3stack_pcm_new(struct snd_soc_pcm_link *pcm_link) { int ret; pcm_link->audio_ops = &imx_3stack_hifi_ops; ret = snd_soc_pcm_new(pcm_link, 1, 1); if (ret < 0) { pr_err("%s: Failed to create hifi pcm\n", __func__); return ret; } return 0; }
static int bt_pcm_new(struct snd_soc_pcm_link *pcm_link) { struct bt_pcm_state *state; int ret; state = kzalloc(sizeof(struct bt_pcm_state), GFP_KERNEL); if (state == NULL) return -ENOMEM; pcm_link->audio_ops = &imx_3stack_bt_ops; state->active = 0; pcm_link->private_data = state; ret = snd_soc_pcm_new(pcm_link, 1, 1); if (ret < 0) { pr_err("%s: Failed to create bt pcm\n", __func__); return ret; } return 0; }
static int imx_3stack_pcm_new(struct snd_soc_pcm_link *pcm_link) { struct imx_3stack_pcm_state *state; int ret; state = kzalloc(sizeof(struct imx_3stack_pcm_state), GFP_KERNEL); if (state == NULL) return -ENOMEM; pcm_link->audio_ops = &imx_3stack_audio_ops; pcm_link->private_data = state; ret = snd_soc_pcm_new(pcm_link, 1, 1); if (ret < 0) { printk(KERN_ERR "%s: failed to create audio pcm\n", __func__); kfree(state); return ret; } printk(KERN_INFO "i.MX 3STACK SGTL5000 Audio Driver"); return 0; }
static int imx_3stack_pcm_new(struct snd_soc_pcm_link *pcm_link) { struct imx_3stack_pcm_state *state; int ret; state = kzalloc(sizeof(struct imx_3stack_pcm_state), GFP_KERNEL); if (state == NULL) return -ENOMEM; pcm_link->audio_ops = &imx_3stack_hifi_ops; pcm_link->private_data = state; ret = snd_soc_pcm_new(pcm_link, 1, 1); if (ret < 0) { err("%s: failed to create hifi pcm\n", __func__); kfree(state); return ret; } info("i.MX 3STACK WM1808 Audio Driver\n"); return 0; }