Lines Matching defs:hmidi

1845 static int snd_hdspm_midi_output_write (struct hdspm_midi *hmidi)
1855 spin_lock_irqsave (&hmidi->lock, flags);
1856 if (hmidi->output &&
1857 !snd_rawmidi_transmit_empty (hmidi->output)) {
1858 n_pending = snd_hdspm_midi_output_possible (hmidi->hdspm,
1859 hmidi->id);
1864 to_write = snd_rawmidi_transmit (hmidi->output, buf,
1868 snd_hdspm_midi_write_byte (hmidi->hdspm,
1869 hmidi->id,
1874 spin_unlock_irqrestore (&hmidi->lock, flags);
1878 static int snd_hdspm_midi_input_read (struct hdspm_midi *hmidi)
1887 spin_lock_irqsave (&hmidi->lock, flags);
1888 n_pending = snd_hdspm_midi_input_available (hmidi->hdspm, hmidi->id);
1890 if (hmidi->input) {
1894 buf[i] = snd_hdspm_midi_read_byte (hmidi->hdspm,
1895 hmidi->id);
1897 snd_rawmidi_receive (hmidi->input, buf,
1902 snd_hdspm_midi_read_byte (hmidi->hdspm,
1903 hmidi->id);
1906 hmidi->pending = 0;
1907 spin_unlock_irqrestore(&hmidi->lock, flags);
1909 spin_lock_irqsave(&hmidi->hdspm->lock, flags);
1910 hmidi->hdspm->control_register |= hmidi->ie;
1911 hdspm_write(hmidi->hdspm, HDSPM_controlRegister,
1912 hmidi->hdspm->control_register);
1913 spin_unlock_irqrestore(&hmidi->hdspm->lock, flags);
1915 return snd_hdspm_midi_output_write (hmidi);
1922 struct hdspm_midi *hmidi;
1925 hmidi = substream->rmidi->private_data;
1926 hdspm = hmidi->hdspm;
1930 if (!(hdspm->control_register & hmidi->ie)) {
1931 snd_hdspm_flush_midi_input (hdspm, hmidi->id);
1932 hdspm->control_register |= hmidi->ie;
1935 hdspm->control_register &= ~hmidi->ie;
1944 struct hdspm_midi *hmidi = from_timer(hmidi, t, timer);
1947 snd_hdspm_midi_output_write(hmidi);
1948 spin_lock_irqsave (&hmidi->lock, flags);
1950 /* this does not bump hmidi->istimer, because the
1956 if (hmidi->istimer)
1957 mod_timer(&hmidi->timer, 1 + jiffies);
1959 spin_unlock_irqrestore (&hmidi->lock, flags);
1965 struct hdspm_midi *hmidi;
1968 hmidi = substream->rmidi->private_data;
1969 spin_lock_irqsave (&hmidi->lock, flags);
1971 if (!hmidi->istimer) {
1972 timer_setup(&hmidi->timer,
1974 mod_timer(&hmidi->timer, 1 + jiffies);
1975 hmidi->istimer++;
1978 if (hmidi->istimer && --hmidi->istimer <= 0)
1979 del_timer (&hmidi->timer);
1981 spin_unlock_irqrestore (&hmidi->lock, flags);
1983 snd_hdspm_midi_output_write(hmidi);
1988 struct hdspm_midi *hmidi;
1990 hmidi = substream->rmidi->private_data;
1991 spin_lock_irq (&hmidi->lock);
1992 snd_hdspm_flush_midi_input (hmidi->hdspm, hmidi->id);
1993 hmidi->input = substream;
1994 spin_unlock_irq (&hmidi->lock);
2001 struct hdspm_midi *hmidi;
2003 hmidi = substream->rmidi->private_data;
2004 spin_lock_irq (&hmidi->lock);
2005 hmidi->output = substream;
2006 spin_unlock_irq (&hmidi->lock);
2013 struct hdspm_midi *hmidi;
2017 hmidi = substream->rmidi->private_data;
2018 spin_lock_irq (&hmidi->lock);
2019 hmidi->input = NULL;
2020 spin_unlock_irq (&hmidi->lock);
2027 struct hdspm_midi *hmidi;
2031 hmidi = substream->rmidi->private_data;
2032 spin_lock_irq (&hmidi->lock);
2033 hmidi->output = NULL;
2034 spin_unlock_irq (&hmidi->lock);