blob: 02cfabc9c3c4ba53d18e7b827600491fd9c2df84 [file] [log] [blame]
Clemens Ladisch31ef9132011-03-15 07:53:21 +01001#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
7struct fw_unit;
8
Clemens Ladisch1b704852011-09-04 22:17:38 +02009#define FW_GENERATION_MASK 0x00ff
10#define FW_FIXED_GENERATION 0x0100
11#define FW_QUIET 0x0200
12
Clemens Ladisch31ef9132011-03-15 07:53:21 +010013int snd_fw_transaction(struct fw_unit *unit, int tcode,
Clemens Ladisch1b704852011-09-04 22:17:38 +020014 u64 offset, void *buffer, size_t length,
15 unsigned int flags);
Clemens Ladisch31ef9132011-03-15 07:53:21 +010016
17/* returns true if retrying the transaction would not make sense */
18static inline bool rcode_is_permanent_error(int rcode)
19{
20 return rcode == RCODE_TYPE_ERROR || rcode == RCODE_ADDRESS_ERROR;
21}
22
23#endif