Lines Matching refs:mtp_card
270 static void snd_mtpav_output_port_write(struct mtpav *mtp_card,
283 if (portp->hwport != mtp_card->outmidihwport) {
284 mtp_card->outmidihwport = portp->hwport;
286 snd_mtpav_send_byte(mtp_card, 0xf5);
287 snd_mtpav_send_byte(mtp_card, portp->hwport);
293 snd_mtpav_send_byte(mtp_card, portp->running_status);
302 snd_mtpav_send_byte(mtp_card, outbyte);
308 struct mtpav *mtp_card = substream->rmidi->private_data;
309 struct mtpav_port *portp = &mtp_card->ports[substream->number];
312 spin_lock_irqsave(&mtp_card->spinlock, flags);
313 snd_mtpav_output_port_write(mtp_card, portp, substream);
314 spin_unlock_irqrestore(&mtp_card->spinlock, flags);
338 struct mtpav *mtp_card = substream->rmidi->private_data;
339 struct mtpav_port *portp = &mtp_card->ports[substream->number];
342 spin_lock_irqsave(&mtp_card->spinlock, flags);
345 if (mtp_card->share_irq++ == 0)
346 snd_mtpav_mputreg(mtp_card, CREG, (SIGC_INTEN | SIGC_WRITE)); // enable pport interrupts
347 spin_unlock_irqrestore(&mtp_card->spinlock, flags);
356 struct mtpav *mtp_card = substream->rmidi->private_data;
357 struct mtpav_port *portp = &mtp_card->ports[substream->number];
360 spin_lock_irqsave(&mtp_card->spinlock, flags);
363 if (--mtp_card->share_irq == 0)
364 snd_mtpav_mputreg(mtp_card, CREG, 0); // disable pport interrupts
365 spin_unlock_irqrestore(&mtp_card->spinlock, flags);
374 struct mtpav *mtp_card = substream->rmidi->private_data;
375 struct mtpav_port *portp = &mtp_card->ports[substream->number];
378 spin_lock_irqsave(&mtp_card->spinlock, flags);
383 spin_unlock_irqrestore(&mtp_card->spinlock, flags);
427 struct mtpav *mtp_card = substream->rmidi->private_data;
428 struct mtpav_port *portp = &mtp_card->ports[substream->number];
431 spin_lock_irqsave(&mtp_card->spinlock, flags);
434 spin_unlock_irqrestore(&mtp_card->spinlock, flags);
443 struct mtpav *mtp_card = substream->rmidi->private_data;
444 struct mtpav_port *portp = &mtp_card->ports[substream->number];
447 spin_lock_irqsave(&mtp_card->spinlock, flags);
450 spin_unlock_irqrestore(&mtp_card->spinlock, flags);
459 struct mtpav *mtp_card = substream->rmidi->private_data;
460 struct mtpav_port *portp = &mtp_card->ports[substream->number];
463 spin_lock_irqsave(&mtp_card->spinlock, flags);
466 if (mtp_card->istimer++ == 0)
467 snd_mtpav_add_output_timer(mtp_card);
472 if (--mtp_card->istimer == 0)
473 snd_mtpav_remove_output_timer(mtp_card);
475 spin_unlock_irqrestore(&mtp_card->spinlock, flags);
680 struct mtpav *mtp_card;
683 sizeof(*mtp_card), &card);
687 mtp_card = card->private_data;
688 spin_lock_init(&mtp_card->spinlock);
689 mtp_card->card = card;
690 mtp_card->irq = -1;
691 mtp_card->share_irq = 0;
692 mtp_card->inmidistate = 0;
693 mtp_card->outmidihwport = 0xffffffff;
694 timer_setup(&mtp_card->timer, snd_mtpav_output_timer, 0);
696 err = snd_mtpav_get_RAWMIDI(mtp_card);
700 mtp_card->inmidiport = mtp_card->num_ports + MTPAV_PIDX_BROADCAST;
702 err = snd_mtpav_get_ISA(mtp_card);
711 snd_mtpav_portscan(mtp_card);
713 err = snd_card_register(mtp_card->card);