Lines Matching refs:mpu
58 struct snd_msndmidi *mpu; in snd_msndmidi_input_open() local
62 mpu = substream->rmidi->private_data; in snd_msndmidi_input_open()
64 mpu->substream_input = substream; in snd_msndmidi_input_open()
66 snd_msnd_enable_irq(mpu->dev); in snd_msndmidi_input_open()
68 snd_msnd_send_dsp_cmd(mpu->dev, HDEX_MIDI_IN_START); in snd_msndmidi_input_open()
69 set_bit(MSNDMIDI_MODE_BIT_INPUT, &mpu->mode); in snd_msndmidi_input_open()
75 struct snd_msndmidi *mpu; in snd_msndmidi_input_close() local
77 mpu = substream->rmidi->private_data; in snd_msndmidi_input_close()
78 snd_msnd_send_dsp_cmd(mpu->dev, HDEX_MIDI_IN_STOP); in snd_msndmidi_input_close()
79 clear_bit(MSNDMIDI_MODE_BIT_INPUT, &mpu->mode); in snd_msndmidi_input_close()
80 mpu->substream_input = NULL; in snd_msndmidi_input_close()
81 snd_msnd_disable_irq(mpu->dev); in snd_msndmidi_input_close()
85 static void snd_msndmidi_input_drop(struct snd_msndmidi *mpu) in snd_msndmidi_input_drop() argument
89 tail = readw(mpu->dev->MIDQ + JQS_wTail); in snd_msndmidi_input_drop()
90 writew(tail, mpu->dev->MIDQ + JQS_wHead); in snd_msndmidi_input_drop()
100 struct snd_msndmidi *mpu; in snd_msndmidi_input_trigger() local
104 mpu = substream->rmidi->private_data; in snd_msndmidi_input_trigger()
105 spin_lock_irqsave(&mpu->input_lock, flags); in snd_msndmidi_input_trigger()
108 &mpu->mode)) in snd_msndmidi_input_trigger()
109 snd_msndmidi_input_drop(mpu); in snd_msndmidi_input_trigger()
111 clear_bit(MSNDMIDI_MODE_BIT_INPUT_TRIGGER, &mpu->mode); in snd_msndmidi_input_trigger()
113 spin_unlock_irqrestore(&mpu->input_lock, flags); in snd_msndmidi_input_trigger()
115 snd_msndmidi_input_read(mpu); in snd_msndmidi_input_trigger()
121 struct snd_msndmidi *mpu = mpuv; in snd_msndmidi_input_read() local
122 void *pwMIDQData = mpu->dev->mappedbase + MIDQ_DATA_BUFF; in snd_msndmidi_input_read()
125 spin_lock_irqsave(&mpu->input_lock, flags); in snd_msndmidi_input_read()
126 head = readw(mpu->dev->MIDQ + JQS_wHead); in snd_msndmidi_input_read()
127 tail = readw(mpu->dev->MIDQ + JQS_wTail); in snd_msndmidi_input_read()
128 size = readw(mpu->dev->MIDQ + JQS_wSize); in snd_msndmidi_input_read()
134 if (test_bit(MSNDMIDI_MODE_BIT_INPUT_TRIGGER, &mpu->mode)) in snd_msndmidi_input_read()
135 snd_rawmidi_receive(mpu->substream_input, &val, 1); in snd_msndmidi_input_read()
138 writew(head, mpu->dev->MIDQ + JQS_wHead); in snd_msndmidi_input_read()
141 spin_unlock_irqrestore(&mpu->input_lock, flags); in snd_msndmidi_input_read()
153 struct snd_msndmidi *mpu = rmidi->private_data; in snd_msndmidi_free() local
154 kfree(mpu); in snd_msndmidi_free()
160 struct snd_msndmidi *mpu; in snd_msndmidi_new() local
167 mpu = kzalloc(sizeof(*mpu), GFP_KERNEL); in snd_msndmidi_new()
168 if (mpu == NULL) { in snd_msndmidi_new()
172 mpu->dev = chip; in snd_msndmidi_new()
173 chip->msndmidi_mpu = mpu; in snd_msndmidi_new()
174 rmidi->private_data = mpu; in snd_msndmidi_new()
176 spin_lock_init(&mpu->input_lock); in snd_msndmidi_new()