blob: eef70922ed89b2f0fd1ec86c87272f69e0080571 [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>
Takashi Sakamoto585d7cb2015-10-09 08:10:25 +09006#include <linux/sched.h>
7#include <sound/rawmidi.h>
Clemens Ladisch31ef9132011-03-15 07:53:21 +01008
9struct fw_unit;
10
Clemens Ladisch1b704852011-09-04 22:17:38 +020011#define FW_GENERATION_MASK 0x00ff
12#define FW_FIXED_GENERATION 0x0100
13#define FW_QUIET 0x0200
14
Clemens Ladisch31ef9132011-03-15 07:53:21 +010015int snd_fw_transaction(struct fw_unit *unit, int tcode,
Clemens Ladisch1b704852011-09-04 22:17:38 +020016 u64 offset, void *buffer, size_t length,
17 unsigned int flags);
Clemens Ladisch31ef9132011-03-15 07:53:21 +010018
19/* returns true if retrying the transaction would not make sense */
20static inline bool rcode_is_permanent_error(int rcode)
21{
22 return rcode == RCODE_TYPE_ERROR || rcode == RCODE_ADDRESS_ERROR;
23}
24
Takashi Sakamoto923f92e2016-03-31 08:47:04 +090025void snd_fw_schedule_registration(struct fw_unit *unit,
26 struct delayed_work *dwork);
27
Clemens Ladisch31ef9132011-03-15 07:53:21 +010028#endif