blob: 664dfdb9e58df5ea442e6093a1336db66a6a95a4 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Clemens Ladisch31ef9132011-03-15 07:53:21 +01002#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>
Takashi Sakamoto585d7cb2015-10-09 08:10:25 +09007#include <linux/sched.h>
8#include <sound/rawmidi.h>
Clemens Ladisch31ef9132011-03-15 07:53:21 +01009
10struct fw_unit;
11
Clemens Ladisch1b704852011-09-04 22:17:38 +020012#define FW_GENERATION_MASK 0x00ff
13#define FW_FIXED_GENERATION 0x0100
14#define FW_QUIET 0x0200
15
Clemens Ladisch31ef9132011-03-15 07:53:21 +010016int snd_fw_transaction(struct fw_unit *unit, int tcode,
Clemens Ladisch1b704852011-09-04 22:17:38 +020017 u64 offset, void *buffer, size_t length,
18 unsigned int flags);
Clemens Ladisch31ef9132011-03-15 07:53:21 +010019
20/* returns true if retrying the transaction would not make sense */
21static inline bool rcode_is_permanent_error(int rcode)
22{
23 return rcode == RCODE_TYPE_ERROR || rcode == RCODE_ADDRESS_ERROR;
24}
25
Clemens Ladisch31ef9132011-03-15 07:53:21 +010026#endif