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

Lines Matching defs:midi

254 	struct emu10k1x_midi midi;
815 if (chip->midi.interrupt)
816 chip->midi.interrupt(chip, status);
1243 struct emu10k1x_midi *midi, unsigned int status)
1247 if (midi->rmidi == NULL) {
1248 snd_emu10k1x_intr_disable(emu, midi->tx_enable | midi->rx_enable);
1252 spin_lock(&midi->input_lock);
1253 if ((status & midi->ipr_rx) && mpu401_input_avail(emu, midi)) {
1254 if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_INPUT)) {
1255 mpu401_clear_rx(emu, midi);
1257 byte = mpu401_read_data(emu, midi);
1258 if (midi->substream_input)
1259 snd_rawmidi_receive(midi->substream_input, &byte, 1);
1262 spin_unlock(&midi->input_lock);
1264 spin_lock(&midi->output_lock);
1265 if ((status & midi->ipr_tx) && mpu401_output_ready(emu, midi)) {
1266 if (midi->substream_output &&
1267 snd_rawmidi_transmit(midi->substream_output, &byte, 1) == 1) {
1268 mpu401_write_data(emu, midi, byte);
1270 snd_emu10k1x_intr_disable(emu, midi->tx_enable);
1273 spin_unlock(&midi->output_lock);
1278 do_emu10k1x_midi_interrupt(emu, &emu->midi, status);
1282 struct emu10k1x_midi *midi, unsigned char cmd, int ack)
1287 spin_lock_irqsave(&midi->input_lock, flags);
1288 mpu401_write_data(emu, midi, 0x00);
1289 /* mpu401_clear_rx(emu, midi); */
1291 mpu401_write_cmd(emu, midi, cmd);
1296 if (mpu401_input_avail(emu, midi)) {
1297 if (mpu401_read_data(emu, midi) == MPU401_ACK)
1301 if (!ok && mpu401_read_data(emu, midi) == MPU401_ACK)
1306 spin_unlock_irqrestore(&midi->input_lock, flags);
1310 mpu401_read_stat(emu, midi),
1311 mpu401_read_data(emu, midi));
1320 struct emu10k1x_midi *midi = substream->rmidi->private_data;
1323 emu = midi->emu;
1325 spin_lock_irqsave(&midi->open_lock, flags);
1326 midi->midi_mode |= EMU10K1X_MIDI_MODE_INPUT;
1327 midi->substream_input = substream;
1328 if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_OUTPUT)) {
1329 spin_unlock_irqrestore(&midi->open_lock, flags);
1330 if (snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 1))
1332 if (snd_emu10k1x_midi_cmd(emu, midi, MPU401_ENTER_UART, 1))
1335 spin_unlock_irqrestore(&midi->open_lock, flags);
1346 struct emu10k1x_midi *midi = substream->rmidi->private_data;
1349 emu = midi->emu;
1351 spin_lock_irqsave(&midi->open_lock, flags);
1352 midi->midi_mode |= EMU10K1X_MIDI_MODE_OUTPUT;
1353 midi->substream_output = substream;
1354 if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_INPUT)) {
1355 spin_unlock_irqrestore(&midi->open_lock, flags);
1356 if (snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 1))
1358 if (snd_emu10k1x_midi_cmd(emu, midi, MPU401_ENTER_UART, 1))
1361 spin_unlock_irqrestore(&midi->open_lock, flags);
1372 struct emu10k1x_midi *midi = substream->rmidi->private_data;
1376 emu = midi->emu;
1378 spin_lock_irqsave(&midi->open_lock, flags);
1379 snd_emu10k1x_intr_disable(emu, midi->rx_enable);
1380 midi->midi_mode &= ~EMU10K1X_MIDI_MODE_INPUT;
1381 midi->substream_input = NULL;
1382 if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_OUTPUT)) {
1383 spin_unlock_irqrestore(&midi->open_lock, flags);
1384 err = snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 0);
1386 spin_unlock_irqrestore(&midi->open_lock, flags);
1394 struct emu10k1x_midi *midi = substream->rmidi->private_data;
1398 emu = midi->emu;
1400 spin_lock_irqsave(&midi->open_lock, flags);
1401 snd_emu10k1x_intr_disable(emu, midi->tx_enable);
1402 midi->midi_mode &= ~EMU10K1X_MIDI_MODE_OUTPUT;
1403 midi->substream_output = NULL;
1404 if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_INPUT)) {
1405 spin_unlock_irqrestore(&midi->open_lock, flags);
1406 err = snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 0);
1408 spin_unlock_irqrestore(&midi->open_lock, flags);
1416 struct emu10k1x_midi *midi = substream->rmidi->private_data;
1417 emu = midi->emu;
1421 snd_emu10k1x_intr_enable(emu, midi->rx_enable);
1423 snd_emu10k1x_intr_disable(emu, midi->rx_enable);
1429 struct emu10k1x_midi *midi = substream->rmidi->private_data;
1432 emu = midi->emu;
1440 spin_lock_irqsave(&midi->output_lock, flags);
1442 if (mpu401_output_ready(emu, midi)) {
1443 if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_OUTPUT) ||
1446 spin_unlock_irqrestore(&midi->output_lock, flags);
1449 mpu401_write_data(emu, midi, byte);
1455 spin_unlock_irqrestore(&midi->output_lock, flags);
1456 snd_emu10k1x_intr_enable(emu, midi->tx_enable);
1458 snd_emu10k1x_intr_disable(emu, midi->tx_enable);
1482 struct emu10k1x_midi *midi = rmidi->private_data;
1483 midi->interrupt = NULL;
1484 midi->rmidi = NULL;
1488 struct emu10k1x_midi *midi, int device, char *name)
1495 midi->emu = emu;
1496 spin_lock_init(&midi->open_lock);
1497 spin_lock_init(&midi->input_lock);
1498 spin_lock_init(&midi->output_lock);
1505 rmidi->private_data = midi;
1507 midi->rmidi = rmidi;
1513 struct emu10k1x_midi *midi = &emu->midi;
1516 if ((err = emu10k1x_midi_init(emu, midi, 0, "EMU10K1X MPU-401 (UART)")) < 0)
1519 midi->tx_enable = INTE_MIDITXENABLE;
1520 midi->rx_enable = INTE_MIDIRXENABLE;
1521 midi->port = MUDATA;
1522 midi->ipr_tx = IPR_MIDITRANSBUFEMPTY;
1523 midi->ipr_rx = IPR_MIDIRECVBUFEMPTY;
1524 midi->interrupt = snd_emu10k1x_midi_interrupt;