Lines Matching defs:hmidi
1846 static int snd_hdspm_midi_output_write (struct hdspm_midi *hmidi)
1856 spin_lock_irqsave (&hmidi->lock, flags);
1857 if (hmidi->output &&
1858 !snd_rawmidi_transmit_empty (hmidi->output)) {
1859 n_pending = snd_hdspm_midi_output_possible (hmidi->hdspm,
1860 hmidi->id);
1865 to_write = snd_rawmidi_transmit (hmidi->output, buf,
1869 snd_hdspm_midi_write_byte (hmidi->hdspm,
1870 hmidi->id,
1875 spin_unlock_irqrestore (&hmidi->lock, flags);
1879 static int snd_hdspm_midi_input_read (struct hdspm_midi *hmidi)
1888 spin_lock_irqsave (&hmidi->lock, flags);
1889 n_pending = snd_hdspm_midi_input_available (hmidi->hdspm, hmidi->id);
1891 if (hmidi->input) {
1895 buf[i] = snd_hdspm_midi_read_byte (hmidi->hdspm,
1896 hmidi->id);
1898 snd_rawmidi_receive (hmidi->input, buf,
1903 snd_hdspm_midi_read_byte (hmidi->hdspm,
1904 hmidi->id);
1907 hmidi->pending = 0;
1908 spin_unlock_irqrestore(&hmidi->lock, flags);
1910 spin_lock_irqsave(&hmidi->hdspm->lock, flags);
1911 hmidi->hdspm->control_register |= hmidi->ie;
1912 hdspm_write(hmidi->hdspm, HDSPM_controlRegister,
1913 hmidi->hdspm->control_register);
1914 spin_unlock_irqrestore(&hmidi->hdspm->lock, flags);
1916 return snd_hdspm_midi_output_write (hmidi);
1923 struct hdspm_midi *hmidi;
1926 hmidi = substream->rmidi->private_data;
1927 hdspm = hmidi->hdspm;
1931 if (!(hdspm->control_register & hmidi->ie)) {
1932 snd_hdspm_flush_midi_input (hdspm, hmidi->id);
1933 hdspm->control_register |= hmidi->ie;
1936 hdspm->control_register &= ~hmidi->ie;
1945 struct hdspm_midi *hmidi = from_timer(hmidi, t, timer);
1948 snd_hdspm_midi_output_write(hmidi);
1949 spin_lock_irqsave (&hmidi->lock, flags);
1951 /* this does not bump hmidi->istimer, because the
1957 if (hmidi->istimer)
1958 mod_timer(&hmidi->timer, 1 + jiffies);
1960 spin_unlock_irqrestore (&hmidi->lock, flags);
1966 struct hdspm_midi *hmidi;
1969 hmidi = substream->rmidi->private_data;
1970 spin_lock_irqsave (&hmidi->lock, flags);
1972 if (!hmidi->istimer) {
1973 timer_setup(&hmidi->timer,
1975 mod_timer(&hmidi->timer, 1 + jiffies);
1976 hmidi->istimer++;
1979 if (hmidi->istimer && --hmidi->istimer <= 0)
1980 del_timer (&hmidi->timer);
1982 spin_unlock_irqrestore (&hmidi->lock, flags);
1984 snd_hdspm_midi_output_write(hmidi);
1989 struct hdspm_midi *hmidi;
1991 hmidi = substream->rmidi->private_data;
1992 spin_lock_irq (&hmidi->lock);
1993 snd_hdspm_flush_midi_input (hmidi->hdspm, hmidi->id);
1994 hmidi->input = substream;
1995 spin_unlock_irq (&hmidi->lock);
2002 struct hdspm_midi *hmidi;
2004 hmidi = substream->rmidi->private_data;
2005 spin_lock_irq (&hmidi->lock);
2006 hmidi->output = substream;
2007 spin_unlock_irq (&hmidi->lock);
2014 struct hdspm_midi *hmidi;
2018 hmidi = substream->rmidi->private_data;
2019 spin_lock_irq (&hmidi->lock);
2020 hmidi->input = NULL;
2021 spin_unlock_irq (&hmidi->lock);
2028 struct hdspm_midi *hmidi;
2032 hmidi = substream->rmidi->private_data;
2033 spin_lock_irq (&hmidi->lock);
2034 hmidi->output = NULL;
2035 spin_unlock_irq (&hmidi->lock);