Lines Matching refs:mtp_card
287 static void snd_mtpav_output_port_write(struct mtpav *mtp_card, in snd_mtpav_output_port_write() argument
300 if (portp->hwport != mtp_card->outmidihwport) { in snd_mtpav_output_port_write()
301 mtp_card->outmidihwport = portp->hwport; in snd_mtpav_output_port_write()
303 snd_mtpav_send_byte(mtp_card, 0xf5); in snd_mtpav_output_port_write()
304 snd_mtpav_send_byte(mtp_card, portp->hwport); in snd_mtpav_output_port_write()
310 snd_mtpav_send_byte(mtp_card, portp->running_status); in snd_mtpav_output_port_write()
319 snd_mtpav_send_byte(mtp_card, outbyte); in snd_mtpav_output_port_write()
325 struct mtpav *mtp_card = substream->rmidi->private_data; in snd_mtpav_output_write() local
326 struct mtpav_port *portp = &mtp_card->ports[substream->number]; in snd_mtpav_output_write()
329 spin_lock_irqsave(&mtp_card->spinlock, flags); in snd_mtpav_output_write()
330 snd_mtpav_output_port_write(mtp_card, portp, substream); in snd_mtpav_output_write()
331 spin_unlock_irqrestore(&mtp_card->spinlock, flags); in snd_mtpav_output_write()
355 struct mtpav *mtp_card = substream->rmidi->private_data; in snd_mtpav_input_open() local
356 struct mtpav_port *portp = &mtp_card->ports[substream->number]; in snd_mtpav_input_open()
359 spin_lock_irqsave(&mtp_card->spinlock, flags); in snd_mtpav_input_open()
362 if (mtp_card->share_irq++ == 0) in snd_mtpav_input_open()
363 snd_mtpav_mputreg(mtp_card, CREG, (SIGC_INTEN | SIGC_WRITE)); // enable pport interrupts in snd_mtpav_input_open()
364 spin_unlock_irqrestore(&mtp_card->spinlock, flags); in snd_mtpav_input_open()
373 struct mtpav *mtp_card = substream->rmidi->private_data; in snd_mtpav_input_close() local
374 struct mtpav_port *portp = &mtp_card->ports[substream->number]; in snd_mtpav_input_close()
377 spin_lock_irqsave(&mtp_card->spinlock, flags); in snd_mtpav_input_close()
380 if (--mtp_card->share_irq == 0) in snd_mtpav_input_close()
381 snd_mtpav_mputreg(mtp_card, CREG, 0); // disable pport interrupts in snd_mtpav_input_close()
382 spin_unlock_irqrestore(&mtp_card->spinlock, flags); in snd_mtpav_input_close()
391 struct mtpav *mtp_card = substream->rmidi->private_data; in snd_mtpav_input_trigger() local
392 struct mtpav_port *portp = &mtp_card->ports[substream->number]; in snd_mtpav_input_trigger()
395 spin_lock_irqsave(&mtp_card->spinlock, flags); in snd_mtpav_input_trigger()
400 spin_unlock_irqrestore(&mtp_card->spinlock, flags); in snd_mtpav_input_trigger()
444 struct mtpav *mtp_card = substream->rmidi->private_data; in snd_mtpav_output_open() local
445 struct mtpav_port *portp = &mtp_card->ports[substream->number]; in snd_mtpav_output_open()
448 spin_lock_irqsave(&mtp_card->spinlock, flags); in snd_mtpav_output_open()
451 spin_unlock_irqrestore(&mtp_card->spinlock, flags); in snd_mtpav_output_open()
460 struct mtpav *mtp_card = substream->rmidi->private_data; in snd_mtpav_output_close() local
461 struct mtpav_port *portp = &mtp_card->ports[substream->number]; in snd_mtpav_output_close()
464 spin_lock_irqsave(&mtp_card->spinlock, flags); in snd_mtpav_output_close()
467 spin_unlock_irqrestore(&mtp_card->spinlock, flags); in snd_mtpav_output_close()
476 struct mtpav *mtp_card = substream->rmidi->private_data; in snd_mtpav_output_trigger() local
477 struct mtpav_port *portp = &mtp_card->ports[substream->number]; in snd_mtpav_output_trigger()
480 spin_lock_irqsave(&mtp_card->spinlock, flags); in snd_mtpav_output_trigger()
483 if (mtp_card->istimer++ == 0) in snd_mtpav_output_trigger()
484 snd_mtpav_add_output_timer(mtp_card); in snd_mtpav_output_trigger()
489 if (--mtp_card->istimer == 0) in snd_mtpav_output_trigger()
490 snd_mtpav_remove_output_timer(mtp_card); in snd_mtpav_output_trigger()
492 spin_unlock_irqrestore(&mtp_card->spinlock, flags); in snd_mtpav_output_trigger()
696 struct mtpav *mtp_card; in snd_mtpav_probe() local
699 sizeof(*mtp_card), &card); in snd_mtpav_probe()
703 mtp_card = card->private_data; in snd_mtpav_probe()
704 spin_lock_init(&mtp_card->spinlock); in snd_mtpav_probe()
705 mtp_card->card = card; in snd_mtpav_probe()
706 mtp_card->irq = -1; in snd_mtpav_probe()
707 mtp_card->share_irq = 0; in snd_mtpav_probe()
708 mtp_card->inmidistate = 0; in snd_mtpav_probe()
709 mtp_card->outmidihwport = 0xffffffff; in snd_mtpav_probe()
710 setup_timer(&mtp_card->timer, snd_mtpav_output_timer, in snd_mtpav_probe()
711 (unsigned long) mtp_card); in snd_mtpav_probe()
715 err = snd_mtpav_get_RAWMIDI(mtp_card); in snd_mtpav_probe()
719 mtp_card->inmidiport = mtp_card->num_ports + MTPAV_PIDX_BROADCAST; in snd_mtpav_probe()
721 err = snd_mtpav_get_ISA(mtp_card); in snd_mtpav_probe()
730 snd_mtpav_portscan(mtp_card); in snd_mtpav_probe()
732 err = snd_card_register(mtp_card->card); in snd_mtpav_probe()