static int __init snd_gusclassic_legacy_auto_probe(unsigned long xport) { static int dev; int res; for ( ; dev < SNDRV_CARDS; dev++) { if (!enable[dev] || port[dev] != SNDRV_AUTO_PORT) continue; port[dev] = xport; res = snd_gusclassic_probe(dev); if (res < 0) port[dev] = SNDRV_AUTO_PORT; return res; } return -ENODEV; }
static int __init alsa_card_gusclassic_init(void) { static unsigned long possible_ports[] = {0x220, 0x230, 0x240, 0x250, 0x260, -1}; int dev, cards; for (dev = cards = 0; dev < SNDRV_CARDS && enable[dev]; dev++) { if (port[dev] == SNDRV_AUTO_PORT) continue; if (snd_gusclassic_probe(dev) >= 0) cards++; } cards += snd_legacy_auto_probe(possible_ports, snd_gusclassic_legacy_auto_probe); if (!cards) { #ifdef MODULE printk(KERN_ERR "GUS Classic soundcard not found or device busy\n"); #endif return -ENODEV; } return 0; }