static int __init afeb9260_soc_init(void) { int err; struct device *dev; if (!(machine_is_afeb9260())) return -ENODEV; afeb9260_snd_device = platform_device_alloc("soc-audio", -1); if (!afeb9260_snd_device) { printk(KERN_ERR "ASoC: Platform device allocation failed\n"); return -ENOMEM; } platform_set_drvdata(afeb9260_snd_device, &snd_soc_machine_afeb9260); err = platform_device_add(afeb9260_snd_device); if (err) goto err1; dev = &afeb9260_snd_device->dev; return 0; err1: platform_device_put(afeb9260_snd_device); return err; }
static int __init afeb9260_soc_init(void) { int err; struct device *dev; struct atmel_ssc_info *ssc_p = afeb9260_dai.cpu_dai->private_data; struct ssc_device *ssc = NULL; if (!(machine_is_afeb9260())) return -ENODEV; ssc = ssc_request(0); if (IS_ERR(ssc)) { printk(KERN_ERR "ASoC: Failed to request SSC 0\n"); err = PTR_ERR(ssc); ssc = NULL; goto err_ssc; } ssc_p->ssc = ssc; afeb9260_snd_device = platform_device_alloc("soc-audio", -1); if (!afeb9260_snd_device) { printk(KERN_ERR "ASoC: Platform device allocation failed\n"); return -ENOMEM; } platform_set_drvdata(afeb9260_snd_device, &afeb9260_snd_devdata); afeb9260_snd_devdata.dev = &afeb9260_snd_device->dev; err = platform_device_add(afeb9260_snd_device); if (err) goto err1; dev = &afeb9260_snd_device->dev; return 0; err1: platform_device_del(afeb9260_snd_device); platform_device_put(afeb9260_snd_device); err_ssc: return err; }