/* VX-pocket 440 * * 1 DSP, 1 sync UER, 1 sync World Clock (NIY) * SMPTE (NIY) * 2 stereo analog input (line/micro) * 2 stereo analog output * Only output levels can be modified * UER, but only for the first two inputs and outputs.
*/
/** * snd_vxpocket_assign_resources - initialize the hardware and card instance. * @chip: VX core instance * @port: i/o port for the card * @irq: irq number for the card * * this function assigns the specified port and irq, boot the card, * create pcm and control instances, and initialize the rest hardware. * * returns 0 if successful, or a negative error code.
*/ staticint snd_vxpocket_assign_resources(struct vx_core *chip, int port, int irq)
{ int err; struct snd_card *card = chip->card; struct snd_vxpocket *vxp = to_vxpocket(chip);
/* redefine hardware record according to the VERSION1 string */ if (!strcmp(link->prod_id[1], "VX-POCKET")) {
dev_dbg(chip->card->dev, "VX-pocket is detected\n");
} else {
dev_dbg(chip->card->dev, "VX-pocket 440 is detected\n"); /* overwrite the hardware information */
chip->hw = &vxp440_hw;
chip->type = vxp440_hw.type;
strscpy(chip->card->driver, vxp440_hw.name);
}
ret = pcmcia_request_io(link); if (ret) goto failed_preirq;
ret = request_threaded_irq(link->irq, snd_vx_irq_handler,
snd_vx_threaded_irq_handler,
IRQF_SHARED, link->devname, link->priv); if (ret) goto failed_preirq;
ret = pcmcia_enable_device(link); if (ret) goto failed;
if (snd_vxpocket_assign_resources(chip, link->resource[0]->start,
link->irq) < 0) goto failed;
if (pcmcia_dev_present(link)) { if (chip)
snd_vx_resume(chip);
}
return 0;
}
#endif
/*
*/ staticint vxpocket_probe(struct pcmcia_device *p_dev)
{ struct snd_card *card; struct snd_vxpocket *vxp; int i, err;
/* find an empty slot from the card list */ for (i = 0; i < SNDRV_CARDS; i++) { if (!(card_alloc & (1 << i))) break;
} if (i >= SNDRV_CARDS) {
dev_err(&p_dev->dev, "vxpocket: too many cards found\n"); return -EINVAL;
} if (! enable[i]) return -ENODEV; /* disabled explicitly */
/* ok, create a card instance */
err = snd_card_new(&p_dev->dev, index[i], id[i], THIS_MODULE,
0, &card); if (err < 0) {
dev_err(&p_dev->dev, "vxpocket: cannot create a card instance\n"); return err;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.