1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef SOUND_FIREWIRE_LIB_H_INCLUDED 3 #define SOUND_FIREWIRE_LIB_H_INCLUDED 4 5 #include <linux/firewire-constants.h> 6 #include <linux/types.h> 7 #include <linux/sched.h> 8 #include <sound/rawmidi.h> 9 10 struct fw_unit; 11 12 #define FW_GENERATION_MASK 0x00ff 13 #define FW_FIXED_GENERATION 0x0100 14 #define FW_QUIET 0x0200 15 16 int snd_fw_transaction(struct fw_unit *unit, int tcode, 17 u64 offset, void *buffer, size_t length, 18 unsigned int flags); 19 20 /* returns true if retrying the transaction would not make sense */ 21 static inline bool rcode_is_permanent_error(int rcode) 22 { 23 return rcode == RCODE_TYPE_ERROR || rcode == RCODE_ADDRESS_ERROR; 24 } 25 26 void snd_fw_schedule_registration(struct fw_unit *unit, 27 struct delayed_work *dwork); 28 29 #endif 30