Lines Matching full:mpu

5  *  Routines for control of MPU-401 in UART mode
7 * MPU-401 supports UART mode which is not capable generate transmit
43 struct snd_msndmidi *mpu; in snd_msndmidi_input_open() local
45 mpu = substream->rmidi->private_data; in snd_msndmidi_input_open()
47 mpu->substream_input = substream; in snd_msndmidi_input_open()
49 snd_msnd_enable_irq(mpu->dev); in snd_msndmidi_input_open()
51 snd_msnd_send_dsp_cmd(mpu->dev, HDEX_MIDI_IN_START); in snd_msndmidi_input_open()
52 set_bit(MSNDMIDI_MODE_BIT_INPUT, &mpu->mode); in snd_msndmidi_input_open()
58 struct snd_msndmidi *mpu; in snd_msndmidi_input_close() local
60 mpu = substream->rmidi->private_data; in snd_msndmidi_input_close()
61 snd_msnd_send_dsp_cmd(mpu->dev, HDEX_MIDI_IN_STOP); in snd_msndmidi_input_close()
62 clear_bit(MSNDMIDI_MODE_BIT_INPUT, &mpu->mode); in snd_msndmidi_input_close()
63 mpu->substream_input = NULL; in snd_msndmidi_input_close()
64 snd_msnd_disable_irq(mpu->dev); in snd_msndmidi_input_close()
68 static void snd_msndmidi_input_drop(struct snd_msndmidi *mpu) in snd_msndmidi_input_drop() argument
72 tail = readw(mpu->dev->MIDQ + JQS_wTail); in snd_msndmidi_input_drop()
73 writew(tail, mpu->dev->MIDQ + JQS_wHead); in snd_msndmidi_input_drop()
83 struct snd_msndmidi *mpu; in snd_msndmidi_input_trigger() local
85 mpu = substream->rmidi->private_data; in snd_msndmidi_input_trigger()
86 spin_lock_irqsave(&mpu->input_lock, flags); in snd_msndmidi_input_trigger()
89 &mpu->mode)) in snd_msndmidi_input_trigger()
90 snd_msndmidi_input_drop(mpu); in snd_msndmidi_input_trigger()
92 clear_bit(MSNDMIDI_MODE_BIT_INPUT_TRIGGER, &mpu->mode); in snd_msndmidi_input_trigger()
94 spin_unlock_irqrestore(&mpu->input_lock, flags); in snd_msndmidi_input_trigger()
96 snd_msndmidi_input_read(mpu); in snd_msndmidi_input_trigger()
102 struct snd_msndmidi *mpu = mpuv; in snd_msndmidi_input_read() local
103 void __iomem *pwMIDQData = mpu->dev->mappedbase + MIDQ_DATA_BUFF; in snd_msndmidi_input_read()
106 spin_lock_irqsave(&mpu->input_lock, flags); in snd_msndmidi_input_read()
107 head = readw(mpu->dev->MIDQ + JQS_wHead); in snd_msndmidi_input_read()
108 tail = readw(mpu->dev->MIDQ + JQS_wTail); in snd_msndmidi_input_read()
109 size = readw(mpu->dev->MIDQ + JQS_wSize); in snd_msndmidi_input_read()
115 if (test_bit(MSNDMIDI_MODE_BIT_INPUT_TRIGGER, &mpu->mode)) in snd_msndmidi_input_read()
116 snd_rawmidi_receive(mpu->substream_input, &val, 1); in snd_msndmidi_input_read()
119 writew(head, mpu->dev->MIDQ + JQS_wHead); in snd_msndmidi_input_read()
122 spin_unlock_irqrestore(&mpu->input_lock, flags); in snd_msndmidi_input_read()
134 struct snd_msndmidi *mpu = rmidi->private_data; in snd_msndmidi_free() local
135 kfree(mpu); in snd_msndmidi_free()
141 struct snd_msndmidi *mpu; in snd_msndmidi_new() local
148 mpu = kzalloc(sizeof(*mpu), GFP_KERNEL); in snd_msndmidi_new()
149 if (mpu == NULL) { in snd_msndmidi_new()
153 mpu->dev = chip; in snd_msndmidi_new()
154 chip->msndmidi_mpu = mpu; in snd_msndmidi_new()
155 rmidi->private_data = mpu; in snd_msndmidi_new()
157 spin_lock_init(&mpu->input_lock); in snd_msndmidi_new()