static int __init sscape_init(void) { int ret; /* * First check whether we were passed any parameters. * These MUST take precedence over ANY automatic way * of allocating cards, because the operator is * S-P-E-L-L-I-N-G it out for us... */ ret = sscape_manual_probe(sscape_params); if (ret < 0) { int i; for (i = 0; i < sscape_cards; ++i) snd_card_free(sscape_card[i]); return ret; } #ifdef CONFIG_PNP if (sscape_cards < SNDRV_CARDS) { ret = pnp_register_card_driver(&sscape_pnpc_driver); if (ret < 0) { sscape_exit(); return ret; } } #endif return 0; }
static int __init sb_init(void) { int lres = 0; int pres = 0; printk(KERN_INFO "sb: Init: Starting Probe...\n"); if(io != -1 && irq != -1 && dma != -1) { printk(KERN_INFO "sb: Probing legacy card with io=%x, "\ "irq=%d, dma=%d, dma16=%d\n",io, irq, dma, dma16); lres = sb_init_legacy(); } else if((io != -1 || irq != -1 || dma != -1) || (!pnp && (io == -1 && irq == -1 && dma == -1))) printk(KERN_ERR "sb: Error: At least io, irq, and dma "\ "must be set for legacy cards.\n"); #ifdef CONFIG_PNP if(pnp) { int err = pnp_register_card_driver(&sb_pnp_driver); if (!err) pnp_registered = 1; pres = sb_pnp_devices; } #endif printk(KERN_INFO "sb: Init: Done\n"); /* If either PnP or Legacy registered a card then return * success */ if (pres == 0 && lres <= 0) { sb_unregister_all(); return -ENODEV; } return 0; }
static int __init alsa_card_es1688_init(void) { #ifdef CONFIG_PNP pnp_register_card_driver(&es968_pnpc_driver); if (snd_es968_pnp_is_probed) return 0; pnp_unregister_card_driver(&es968_pnpc_driver); #endif return isa_register_driver(&snd_es1688_driver, SNDRV_CARDS); }
static int __init alsa_card_ad1816a_init(void) { int err; err = pnp_register_card_driver(&ad1816a_pnpc_driver); if (err) return err; if (!ad1816a_devices) { pnp_unregister_card_driver(&ad1816a_pnpc_driver); #ifdef MODULE printk(KERN_ERR "no AD1816A based soundcards found.\n"); #endif /* MODULE */ return -ENODEV; } return 0; }
static int __init alsa_card_wavefront_init(void) { int err; err = isa_register_driver(&snd_wavefront_driver, SNDRV_CARDS); #ifdef CONFIG_PNP if (!err) isa_registered = 1; err = pnp_register_card_driver(&wavefront_pnpc_driver); if (!err) pnp_registered = 1; if (isa_registered) err = 0; #endif return err; }
static int __init alsa_card_wavefront_init(void) { int i, err, cards = 0; if ((err = platform_driver_register(&snd_wavefront_driver)) < 0) return err; for (i = 0; i < SNDRV_CARDS; i++) { struct platform_device *device; if (! enable[i]) continue; #ifdef CONFIG_PNP if (isapnp[i]) continue; #endif device = platform_device_register_simple(WAVEFRONT_DRIVER, i, NULL, 0); if (IS_ERR(device)) continue; if (!platform_get_drvdata(device)) { platform_device_unregister(device); continue; } platform_devices[i] = device; cards++; } #ifdef CONFIG_PNP err = pnp_register_card_driver(&wavefront_pnpc_driver); if (!err) { pnp_registered = 1; cards += wavefront_pnp_devices; } #endif if (!cards) { #ifdef MODULE printk (KERN_ERR "No WaveFront cards found or devices busy\n"); #endif snd_wavefront_unregister_all(); return -ENODEV; } return 0; }
static int __init sscape_init(void) { int ret; /* * First check whether we were passed any parameters. * These MUST take precedence over ANY automatic way * of allocating cards, because the operator is * S-P-E-L-L-I-N-G it out for us... */ ret = sscape_manual_probe(); if (ret < 0) return ret; #ifdef CONFIG_PNP if (pnp_register_card_driver(&sscape_pnpc_driver) == 0) pnp_registered = 1; #endif return 0; }