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