#ifndef SOUND_FIREWIRE_LIB_H_INCLUDED #define SOUND_FIREWIRE_LIB_H_INCLUDED #include #include #include #include struct fw_unit; #define FW_GENERATION_MASK 0x00ff #define FW_FIXED_GENERATION 0x0100 #define FW_QUIET 0x0200 int snd_fw_transaction(struct fw_unit *unit, int tcode, u64 offset, void *buffer, size_t length, unsigned int flags); /* returns true if retrying the transaction would not make sense */ static inline bool rcode_is_permanent_error(int rcode) { return rcode == RCODE_TYPE_ERROR || rcode == RCODE_ADDRESS_ERROR; } void snd_fw_schedule_registration(struct fw_unit *unit, struct delayed_work *dwork); struct snd_fw_async_midi_port; typedef int (*snd_fw_async_midi_port_fill)( struct snd_rawmidi_substream *substream, u8 *buf); struct snd_fw_async_midi_port { struct fw_device *parent; struct work_struct work; bool idling; ktime_t next_ktime; bool error; u64 addr; struct fw_transaction transaction; u8 *buf; unsigned int len; struct snd_rawmidi_substream *substream; snd_fw_async_midi_port_fill fill; unsigned int consume_bytes; }; int snd_fw_async_midi_port_init(struct snd_fw_async_midi_port *port, struct fw_unit *unit, u64 addr, unsigned int len, snd_fw_async_midi_port_fill fill); void snd_fw_async_midi_port_destroy(struct snd_fw_async_midi_port *port); /** * snd_fw_async_midi_port_run - run transactions for the async MIDI port * @port: the asynchronous MIDI port * @substream: the MIDI substream */ static inline void snd_fw_async_midi_port_run(struct snd_fw_async_midi_port *port, struct snd_rawmidi_substream *substream) { if (!port->error) { port->substream = substream; schedule_work(&port->work); } } /** * snd_fw_async_midi_port_finish - finish the asynchronous MIDI port * @port: the asynchronous MIDI port */ static inline void snd_fw_async_midi_port_finish(struct snd_fw_async_midi_port *port) { port->substream = NULL; port->error = false; } #endif nux/net-next.git/commit/sound/soc/mediatek?h=nds-private-remove&id=69978aa0f21f43529e11f924504dadb6ce2f229a'>commitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-01-27 12:25:26 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2017-01-27 12:25:26 -0800
commit69978aa0f21f43529e11f924504dadb6ce2f229a (patch)
treecad7f9c9b01b7d1839a3d12e9178ceb5b2b33873 /sound/soc/mediatek
parent2b4321503e62523e701405163a034875e92d68cf (diff)
parent0d6da872d3e4a60f43c295386d7ff9a4cdcd57e9 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 fixes from Martin Schwidefsky: "Another two bug fixes: - ptrace partial write information leak - a guest page hinting regression introduced with v4.6" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/mm: Fix cmma unused transfer from pgste into pte s390/ptrace: Preserve previous registers for short regset write
Diffstat (limited to 'sound/soc/mediatek')