• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/sound/isa/wavefront/

Lines Matching defs:midi

59 wf_mpu_status (snd_wavefront_midi_t *midi)
62 return inb (midi->mpu_status_port);
66 input_avail (snd_wavefront_midi_t *midi)
69 return !(wf_mpu_status(midi) & INPUT_AVAIL);
73 output_ready (snd_wavefront_midi_t *midi)
76 return !(wf_mpu_status(midi) & OUTPUT_READY);
80 read_data (snd_wavefront_midi_t *midi)
83 return inb (midi->mpu_data_port);
87 write_data (snd_wavefront_midi_t *midi, unsigned char byte)
90 outb (byte, midi->mpu_data_port);
113 return &acard->wavefront.midi;
118 snd_wavefront_midi_t *midi = &card->wavefront.midi;
136 if (midi->substream_output[midi->output_mpu] == NULL) {
144 if (output_ready (midi))
148 spin_lock_irqsave (&midi->virtual, flags);
149 if ((midi->mode[midi->output_mpu] & MPU401_MODE_OUTPUT) == 0) {
150 spin_unlock_irqrestore (&midi->virtual, flags);
153 if (output_ready (midi)) {
154 if (snd_rawmidi_transmit(midi->substream_output[midi->output_mpu], &midi_byte, 1) == 1) {
155 if (!midi->isvirtual ||
158 write_data(midi, midi_byte);
161 if (midi->istimer) {
162 if (--midi->istimer <= 0)
163 del_timer(&midi->timer);
165 midi->mode[midi->output_mpu] &= ~MPU401_MODE_OUTPUT_TRIGGER;
166 spin_unlock_irqrestore (&midi->virtual, flags);
170 spin_unlock_irqrestore (&midi->virtual, flags);
173 spin_unlock_irqrestore (&midi->virtual, flags);
178 if (midi->substream_output[!midi->output_mpu] == NULL) {
186 if (output_ready (midi))
190 spin_lock_irqsave (&midi->virtual, flags);
191 if (!midi->isvirtual)
193 mpu = midi->output_mpu ^ mask;
195 if ((midi->mode[mpu] & MPU401_MODE_OUTPUT) == 0) {
196 spin_unlock_irqrestore (&midi->virtual, flags);
199 if (snd_rawmidi_transmit_empty(midi->substream_output[mpu]))
201 if (output_ready (midi)) {
202 if (mpu != midi->output_mpu) {
203 write_data(midi, mpu == internal_mpu ?
206 midi->output_mpu = mpu;
207 } else if (snd_rawmidi_transmit(midi->substream_output[mpu], &midi_byte, 1) == 1) {
208 if (!midi->isvirtual ||
211 write_data(midi, midi_byte);
215 if (midi->istimer) {
216 if (--midi->istimer <= 0)
217 del_timer(&midi->timer);
219 midi->mode[mpu] &= ~MPU401_MODE_OUTPUT_TRIGGER;
220 spin_unlock_irqrestore (&midi->virtual, flags);
224 spin_unlock_irqrestore (&midi->virtual, flags);
227 spin_unlock_irqrestore (&midi->virtual, flags);
234 snd_wavefront_midi_t *midi;
242 if ((midi = get_wavefront_midi (substream)) == NULL)
245 spin_lock_irqsave (&midi->open, flags);
246 midi->mode[mpu] |= MPU401_MODE_INPUT;
247 midi->substream_input[mpu] = substream;
248 spin_unlock_irqrestore (&midi->open, flags);
256 snd_wavefront_midi_t *midi;
264 if ((midi = get_wavefront_midi (substream)) == NULL)
267 spin_lock_irqsave (&midi->open, flags);
268 midi->mode[mpu] |= MPU401_MODE_OUTPUT;
269 midi->substream_output[mpu] = substream;
270 spin_unlock_irqrestore (&midi->open, flags);
278 snd_wavefront_midi_t *midi;
286 if ((midi = get_wavefront_midi (substream)) == NULL)
289 spin_lock_irqsave (&midi->open, flags);
290 midi->mode[mpu] &= ~MPU401_MODE_INPUT;
291 spin_unlock_irqrestore (&midi->open, flags);
299 snd_wavefront_midi_t *midi;
307 if ((midi = get_wavefront_midi (substream)) == NULL)
310 spin_lock_irqsave (&midi->open, flags);
311 midi->mode[mpu] &= ~MPU401_MODE_OUTPUT;
312 spin_unlock_irqrestore (&midi->open, flags);
319 snd_wavefront_midi_t *midi;
330 if ((midi = get_wavefront_midi (substream)) == NULL) {
334 spin_lock_irqsave (&midi->virtual, flags);
336 midi->mode[mpu] |= MPU401_MODE_INPUT_TRIGGER;
338 midi->mode[mpu] &= ~MPU401_MODE_INPUT_TRIGGER;
340 spin_unlock_irqrestore (&midi->virtual, flags);
346 snd_wavefront_midi_t *midi = &card->wavefront.midi;
349 spin_lock_irqsave (&midi->virtual, flags);
350 midi->timer.expires = 1 + jiffies;
351 add_timer(&midi->timer);
352 spin_unlock_irqrestore (&midi->virtual, flags);
359 snd_wavefront_midi_t *midi;
370 if ((midi = get_wavefront_midi (substream)) == NULL) {
374 spin_lock_irqsave (&midi->virtual, flags);
376 if ((midi->mode[mpu] & MPU401_MODE_OUTPUT_TRIGGER) == 0) {
377 if (!midi->istimer) {
378 init_timer(&midi->timer);
379 midi->timer.function = snd_wavefront_midi_output_timer;
380 midi->timer.data = (unsigned long) substream->rmidi->card->private_data;
381 midi->timer.expires = 1 + jiffies;
382 add_timer(&midi->timer);
384 midi->istimer++;
385 midi->mode[mpu] |= MPU401_MODE_OUTPUT_TRIGGER;
388 midi->mode[mpu] &= ~MPU401_MODE_OUTPUT_TRIGGER;
390 spin_unlock_irqrestore (&midi->virtual, flags);
401 snd_wavefront_midi_t *midi;
407 midi = &card->wavefront.midi;
409 if (!input_avail (midi)) { /* not for us */
414 spin_lock_irqsave (&midi->virtual, flags);
417 if (input_avail (midi)) {
418 byte = read_data (midi);
420 if (midi->isvirtual) {
422 substream = midi->substream_input[external_mpu];
425 substream = midi->substream_output[internal_mpu];
429 substream = midi->substream_input[internal_mpu];
437 if (midi->mode[mpu] & MPU401_MODE_INPUT_TRIGGER) {
444 spin_unlock_irqrestore (&midi->virtual, flags);
455 spin_lock_irqsave (&card->wavefront.midi.virtual, flags);
456 card->wavefront.midi.isvirtual = 1;
457 card->wavefront.midi.output_mpu = internal_mpu;
458 card->wavefront.midi.input_mpu = internal_mpu;
459 spin_unlock_irqrestore (&card->wavefront.midi.virtual, flags);
468 spin_lock_irqsave (&card->wavefront.midi.virtual, flags);
471 card->wavefront.midi.isvirtual = 0;
472 spin_unlock_irqrestore (&card->wavefront.midi.virtual, flags);
482 snd_wavefront_midi_t *midi;
485 midi = &dev->midi;
492 for (i = 0; i < 30000 && !output_ready (midi); i++);
494 if (!output_ready (midi)) {
505 outb (UART_MODE_ON, midi->mpu_command_port);
508 if (input_avail (midi)) {
509 if (read_data (midi) == MPU_ACK) {