Lines Matching defs:mtp_card
271 static void snd_mtpav_output_port_write(struct mtpav *mtp_card,
284 if (portp->hwport != mtp_card->outmidihwport) {
285 mtp_card->outmidihwport = portp->hwport;
287 snd_mtpav_send_byte(mtp_card, 0xf5);
288 snd_mtpav_send_byte(mtp_card, portp->hwport);
290 snd_mtpav_send_byte(mtp_card, portp->running_status);
299 snd_mtpav_send_byte(mtp_card, outbyte);
305 struct mtpav *mtp_card = substream->rmidi->private_data;
306 struct mtpav_port *portp = &mtp_card->ports[substream->number];
308 guard(spinlock_irqsave)(&mtp_card->spinlock);
309 snd_mtpav_output_port_write(mtp_card, portp, substream);
333 struct mtpav *mtp_card = substream->rmidi->private_data;
334 struct mtpav_port *portp = &mtp_card->ports[substream->number];
336 guard(spinlock_irqsave)(&mtp_card->spinlock);
339 if (mtp_card->share_irq++ == 0)
340 snd_mtpav_mputreg(mtp_card, CREG, (SIGC_INTEN | SIGC_WRITE)); // enable pport interrupts
349 struct mtpav *mtp_card = substream->rmidi->private_data;
350 struct mtpav_port *portp = &mtp_card->ports[substream->number];
352 guard(spinlock_irqsave)(&mtp_card->spinlock);
355 if (--mtp_card->share_irq == 0)
356 snd_mtpav_mputreg(mtp_card, CREG, 0); // disable pport interrupts
365 struct mtpav *mtp_card = substream->rmidi->private_data;
366 struct mtpav_port *portp = &mtp_card->ports[substream->number];
368 guard(spinlock_irqsave)(&mtp_card->spinlock);
413 struct mtpav *mtp_card = substream->rmidi->private_data;
414 struct mtpav_port *portp = &mtp_card->ports[substream->number];
416 guard(spinlock_irqsave)(&mtp_card->spinlock);
427 struct mtpav *mtp_card = substream->rmidi->private_data;
428 struct mtpav_port *portp = &mtp_card->ports[substream->number];
430 guard(spinlock_irqsave)(&mtp_card->spinlock);
441 struct mtpav *mtp_card = substream->rmidi->private_data;
442 struct mtpav_port *portp = &mtp_card->ports[substream->number];
444 scoped_guard(spinlock_irqsave, &mtp_card->spinlock) {
447 if (mtp_card->istimer++ == 0)
448 snd_mtpav_add_output_timer(mtp_card);
453 if (--mtp_card->istimer == 0)
454 snd_mtpav_remove_output_timer(mtp_card);
656 struct mtpav *mtp_card;
659 sizeof(*mtp_card), &card);
663 mtp_card = card->private_data;
664 spin_lock_init(&mtp_card->spinlock);
665 mtp_card->card = card;
666 mtp_card->irq = -1;
667 mtp_card->share_irq = 0;
668 mtp_card->inmidistate = 0;
669 mtp_card->outmidihwport = 0xffffffff;
670 timer_setup(&mtp_card->timer, snd_mtpav_output_timer, 0);
672 err = snd_mtpav_get_RAWMIDI(mtp_card);
676 mtp_card->inmidiport = mtp_card->num_ports + MTPAV_PIDX_BROADCAST;
678 err = snd_mtpav_get_ISA(mtp_card);
687 snd_mtpav_portscan(mtp_card);
689 err = snd_card_register(mtp_card->card);