static int __init midas_audio_init(void) { struct wm1811_machine_priv *wm1811; int ret; wm1811 = kzalloc(sizeof *wm1811, GFP_KERNEL); if (!wm1811) { pr_err("Failed to allocate memory\n"); ret = -ENOMEM; goto err_kzalloc; } snd_soc_card_set_drvdata(&midas, wm1811); midas_snd_device = platform_device_alloc("soc-audio", -1); if (!midas_snd_device) { ret = -ENOMEM; goto err_device_alloc; } ret = snd_soc_register_dais(&midas_snd_device->dev, midas_ext_dai, ARRAY_SIZE(midas_ext_dai)); if (ret != 0) pr_err("Failed to register external DAIs: %d\n", ret); platform_set_drvdata(midas_snd_device, &midas); ret = platform_device_add(midas_snd_device); if (ret) platform_device_put(midas_snd_device); midas_gpio_init(); return ret; err_device_alloc: kfree(wm1811); err_kzalloc: return ret; }
static int __init midas_audio_init(void) { int ret; midas_snd_device = platform_device_alloc("soc-audio", -1); if (!midas_snd_device) return -ENOMEM; ret = snd_soc_register_dais(&midas_snd_device->dev, midas_ext_dai, ARRAY_SIZE(midas_ext_dai)); if (ret != 0) pr_err("Failed to register external DAIs: %d\n", ret); platform_set_drvdata(midas_snd_device, &midas); ret = platform_device_add(midas_snd_device); if (ret) platform_device_put(midas_snd_device); midas_gpio_init(); return ret; }