Lines Matching defs:hmidi

1305 static int snd_hdsp_midi_output_write (struct hdsp_midi *hmidi)
1315 spin_lock_irqsave (&hmidi->lock, flags);
1316 if (hmidi->output) {
1317 if (!snd_rawmidi_transmit_empty (hmidi->output)) {
1318 n_pending = snd_hdsp_midi_output_possible(hmidi->hdsp, hmidi->id);
1323 to_write = snd_rawmidi_transmit(hmidi->output, buf, n_pending);
1326 snd_hdsp_midi_write_byte (hmidi->hdsp, hmidi->id, buf[i]);
1331 spin_unlock_irqrestore (&hmidi->lock, flags);
1335 static int snd_hdsp_midi_input_read (struct hdsp_midi *hmidi)
1342 spin_lock_irqsave (&hmidi->lock, flags);
1343 n_pending = snd_hdsp_midi_input_available(hmidi->hdsp, hmidi->id);
1345 if (hmidi->input) {
1349 buf[i] = snd_hdsp_midi_read_byte (hmidi->hdsp, hmidi->id);
1351 snd_rawmidi_receive (hmidi->input, buf, n_pending);
1355 snd_hdsp_midi_read_byte (hmidi->hdsp, hmidi->id);
1358 hmidi->pending = 0;
1359 if (hmidi->id)
1360 hmidi->hdsp->control_register |= HDSP_Midi1InterruptEnable;
1362 hmidi->hdsp->control_register |= HDSP_Midi0InterruptEnable;
1363 hdsp_write(hmidi->hdsp, HDSP_controlRegister, hmidi->hdsp->control_register);
1364 spin_unlock_irqrestore (&hmidi->lock, flags);
1365 return snd_hdsp_midi_output_write (hmidi);
1371 struct hdsp_midi *hmidi;
1375 hmidi = (struct hdsp_midi *) substream->rmidi->private_data;
1376 hdsp = hmidi->hdsp;
1377 ie = hmidi->id ? HDSP_Midi1InterruptEnable : HDSP_Midi0InterruptEnable;
1381 snd_hdsp_flush_midi_input (hdsp, hmidi->id);
1394 struct hdsp_midi *hmidi = from_timer(hmidi, t, timer);
1397 snd_hdsp_midi_output_write(hmidi);
1398 spin_lock_irqsave (&hmidi->lock, flags);
1400 /* this does not bump hmidi->istimer, because the
1406 if (hmidi->istimer)
1407 mod_timer(&hmidi->timer, 1 + jiffies);
1409 spin_unlock_irqrestore (&hmidi->lock, flags);
1414 struct hdsp_midi *hmidi;
1417 hmidi = (struct hdsp_midi *) substream->rmidi->private_data;
1418 spin_lock_irqsave (&hmidi->lock, flags);
1420 if (!hmidi->istimer) {
1421 timer_setup(&hmidi->timer, snd_hdsp_midi_output_timer,
1423 mod_timer(&hmidi->timer, 1 + jiffies);
1424 hmidi->istimer++;
1427 if (hmidi->istimer && --hmidi->istimer <= 0)
1428 del_timer (&hmidi->timer);
1430 spin_unlock_irqrestore (&hmidi->lock, flags);
1432 snd_hdsp_midi_output_write(hmidi);
1437 struct hdsp_midi *hmidi;
1439 hmidi = (struct hdsp_midi *) substream->rmidi->private_data;
1440 spin_lock_irq (&hmidi->lock);
1441 snd_hdsp_flush_midi_input (hmidi->hdsp, hmidi->id);
1442 hmidi->input = substream;
1443 spin_unlock_irq (&hmidi->lock);
1450 struct hdsp_midi *hmidi;
1452 hmidi = (struct hdsp_midi *) substream->rmidi->private_data;
1453 spin_lock_irq (&hmidi->lock);
1454 hmidi->output = substream;
1455 spin_unlock_irq (&hmidi->lock);
1462 struct hdsp_midi *hmidi;
1466 hmidi = (struct hdsp_midi *) substream->rmidi->private_data;
1467 spin_lock_irq (&hmidi->lock);
1468 hmidi->input = NULL;
1469 spin_unlock_irq (&hmidi->lock);
1476 struct hdsp_midi *hmidi;
1480 hmidi = (struct hdsp_midi *) substream->rmidi->private_data;
1481 spin_lock_irq (&hmidi->lock);
1482 hmidi->output = NULL;
1483 spin_unlock_irq (&hmidi->lock);