Add a flag to snd_fw_transaction() to allow it to abort when a bus reset happens. This removes most of the duplicated error handling loops that were required around calls to the low-level fw_run_transaction(). Also add a flag to suppress error messages; errors are expected when we attempt to clean up after the device was unplugged. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
		
			
				
	
	
		
			23 lines
		
	
	
	
		
			592 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
	
		
			592 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef SOUND_FIREWIRE_LIB_H_INCLUDED
 | 
						|
#define SOUND_FIREWIRE_LIB_H_INCLUDED
 | 
						|
 | 
						|
#include <linux/firewire-constants.h>
 | 
						|
#include <linux/types.h>
 | 
						|
 | 
						|
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;
 | 
						|
}
 | 
						|
 | 
						|
#endif
 |