Example #1
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(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;
}
Example #2
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;
}
Example #3
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;
}
Example #6
0
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;
}
Example #7
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;
}