static int __init alsa_card_dummy_init(void) { int i, cards, err; if ((err = platform_driver_register(&snd_dummy_driver)) < 0) return err; cards = 0; for (i = 0; i < SNDRV_CARDS; i++) { struct platform_device *device; if (! enable[i]) continue; device = platform_device_register_simple(SND_DUMMY_DRIVER, i, NULL, 0); if (IS_ERR(device)) continue; if (!platform_get_drvdata(device)) { platform_device_unregister(device); continue; } devices[i] = device; cards++; } if (!cards) { #ifdef MODULE printk(KERN_ERR "Dummy soundcard not found or device busy\n"); #endif snd_dummy_unregister_all(); return -ENODEV; } return 0; }
static int __init alsa_card_dummy_init(void) { int i, cards, err; err = platform_driver_register(&snd_dummy_driver); if (err < 0) return err; if (!dummystarted) { dummystarted = 1; spin_lock_init(&dummylock); spin_lock_bh(&dummylock); for (i = 0; i < MAX_PCM_SUBSTREAMS; i++) { //if (i > MAX_PCM_SUBSTREAMS || dummyindex > MAX_PCM_SUBSTREAMS) { //printk("dummy, %s:%d, i=%d, dummyindex=%d \n", __FILE__, __LINE__, i, dummyindex); //} dummydpcms[i].substream = NULL; dummydpcms[i].dpcm = NULL; dummydpcms[i].started = 0; dummydpcms[i].elapsed = 0; } init_timer(&dummytimer); dummytimer.data = (unsigned long) &dummydpcms; dummytimer.function = snd_card_dummy_pcm_timer_function; dummytimer.expires = 1 + jiffies; add_timer(&dummytimer); printk("snd-dummy skypopen driver version: 9, %s:%d working on a machine with %dHZ kernel\n", __FILE__, __LINE__, HZ); spin_unlock_bh(&dummylock); } cards = 0; for (i = 0; i < SNDRV_CARDS; i++) { struct platform_device *device; if (!enable[i]) continue; device = platform_device_register_simple(SND_DUMMY_DRIVER, i, NULL, 0); if (IS_ERR(device)) continue; if (!platform_get_drvdata(device)) { platform_device_unregister(device); continue; } devices[i] = device; cards++; } if (!cards) { #ifdef MODULE printk(KERN_ERR "Dummy soundcard not found or device busy\n"); #endif snd_dummy_unregister_all(); return -ENODEV; } return 0; }
static int __init alsa_card_dummy_init(void) { int i, cards, err; err = platform_driver_register(&snd_dummy_driver); if (err < 0) return err; err = alloc_fake_buffer(); if (err < 0) { platform_driver_unregister(&snd_dummy_driver); return err; } cards = 0; for (i = 0; i < SNDRV_CARDS; i++) { struct platform_device *device; if (! enable[i]) continue; device = platform_device_register_simple(SND_DUMMY_DRIVER, i, NULL, 0); if (IS_ERR(device)) continue; if (!platform_get_drvdata(device)) { platform_device_unregister(device); continue; } devices[i] = device; cards++; } if (!cards) { #ifdef MODULE ; #endif snd_dummy_unregister_all(); return -ENODEV; } return 0; }
static void __exit alsa_card_dummy_exit(void) { snd_dummy_unregister_all(); }
static void __exit alsa_card_dummy_exit(void) { del_timer(&dummytimer); snd_dummy_unregister_all(); }