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