aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/pxa/spitz.c
diff options
context:
space:
mode:
authorDmitry Eremin-Solenikov <dbaryshkov@gmail.com>2014-10-24 13:50:05 -0400
committerMark Brown <broonie@kernel.org>2014-10-27 20:42:57 -0400
commitecf0015161b2220879fcd41c030761b4eb561b95 (patch)
treeceb5192bec31cb60473e83202d4b5778966fa014 /sound/soc/pxa/spitz.c
parent728384a10b673dbd9819b524852df23142ee2fdd (diff)
ASoC: pxa: Convert spitz to use snd_soc_register_card()
Use snd_soc_register_card() instead of creating a "soc-audio" platform device. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/pxa/spitz.c')
-rw-r--r--sound/soc/pxa/spitz.c52
1 files changed, 28 insertions, 24 deletions
diff --git a/sound/soc/pxa/spitz.c b/sound/soc/pxa/spitz.c
index 1373b017a951..d7d5fb20ea6f 100644
--- a/sound/soc/pxa/spitz.c
+++ b/sound/soc/pxa/spitz.c
@@ -305,19 +305,15 @@ static struct snd_soc_card snd_soc_spitz = {
305 .num_dapm_routes = ARRAY_SIZE(spitz_audio_map), 305 .num_dapm_routes = ARRAY_SIZE(spitz_audio_map),
306}; 306};
307 307
308static struct platform_device *spitz_snd_device; 308static int spitz_probe(struct platform_device *pdev)
309
310static int __init spitz_init(void)
311{ 309{
310 struct snd_soc_card *card = &snd_soc_spitz;
312 int ret; 311 int ret;
313 312
314 if (!(machine_is_spitz() || machine_is_borzoi() || machine_is_akita())) 313 if (machine_is_akita())
315 return -ENODEV;
316
317 if (machine_is_borzoi() || machine_is_spitz())
318 spitz_mic_gpio = SPITZ_GPIO_MIC_BIAS;
319 else
320 spitz_mic_gpio = AKITA_GPIO_MIC_BIAS; 314 spitz_mic_gpio = AKITA_GPIO_MIC_BIAS;
315 else
316 spitz_mic_gpio = SPITZ_GPIO_MIC_BIAS;
321 317
322 ret = gpio_request(spitz_mic_gpio, "MIC GPIO"); 318 ret = gpio_request(spitz_mic_gpio, "MIC GPIO");
323 if (ret) 319 if (ret)
@@ -327,37 +323,45 @@ static int __init spitz_init(void)
327 if (ret) 323 if (ret)
328 goto err2; 324 goto err2;
329 325
330 spitz_snd_device = platform_device_alloc("soc-audio", -1); 326 card->dev = &pdev->dev;
331 if (!spitz_snd_device) { 327
332 ret = -ENOMEM; 328 ret = snd_soc_register_card(card);
329 if (ret) {
330 dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
331 ret);
333 goto err2; 332 goto err2;
334 } 333 }
335 334
336 platform_set_drvdata(spitz_snd_device, &snd_soc_spitz);
337
338 ret = platform_device_add(spitz_snd_device);
339 if (ret)
340 goto err3;
341
342 return 0; 335 return 0;
343 336
344err3:
345 platform_device_put(spitz_snd_device);
346err2: 337err2:
347 gpio_free(spitz_mic_gpio); 338 gpio_free(spitz_mic_gpio);
348err1: 339err1:
349 return ret; 340 return ret;
350} 341}
351 342
352static void __exit spitz_exit(void) 343static int spitz_remove(struct platform_device *pdev)
353{ 344{
354 platform_device_unregister(spitz_snd_device); 345 struct snd_soc_card *card = platform_get_drvdata(pdev);
346
347 snd_soc_unregister_card(card);
355 gpio_free(spitz_mic_gpio); 348 gpio_free(spitz_mic_gpio);
349 return 0;
356} 350}
357 351
358module_init(spitz_init); 352static struct platform_driver spitz_driver = {
359module_exit(spitz_exit); 353 .driver = {
354 .name = "spitz-audio",
355 .owner = THIS_MODULE,
356 .pm = &snd_soc_pm_ops,
357 },
358 .probe = spitz_probe,
359 .remove = spitz_remove,
360};
361
362module_platform_driver(spitz_driver);
360 363
361MODULE_AUTHOR("Richard Purdie"); 364MODULE_AUTHOR("Richard Purdie");
362MODULE_DESCRIPTION("ALSA SoC Spitz"); 365MODULE_DESCRIPTION("ALSA SoC Spitz");
363MODULE_LICENSE("GPL"); 366MODULE_LICENSE("GPL");
367MODULE_ALIAS("platform:spitz-audio");