blob: 63ae4f7ce3af9b72ee3a7edfc969585044444719 [file] [log] [blame]
Clemens Ladisch31ef9132011-03-15 07:53:21 +01001#ifndef SOUND_FIREWIRE_FCP_H_INCLUDED
2#define SOUND_FIREWIRE_FCP_H_INCLUDED
3
Takashi Sakamoto1017abe2014-04-25 22:44:59 +09004#define AVC_PLUG_INFO_BUF_BYTES 4
5
Clemens Ladisch31ef9132011-03-15 07:53:21 +01006struct fw_unit;
7
Takashi Sakamoto1017abe2014-04-25 22:44:59 +09008/*
9 * AV/C Digital Interface Command Set General Specification 4.2
10 * (Sep 2004, 1394TA)
11 */
12enum avc_general_plug_dir {
13 AVC_GENERAL_PLUG_DIR_IN = 0,
14 AVC_GENERAL_PLUG_DIR_OUT = 1,
15 AVC_GENERAL_PLUG_DIR_COUNT
16};
17int avc_general_set_sig_fmt(struct fw_unit *unit, unsigned int rate,
18 enum avc_general_plug_dir dir,
19 unsigned short plug);
20int avc_general_get_sig_fmt(struct fw_unit *unit, unsigned int *rate,
21 enum avc_general_plug_dir dir,
22 unsigned short plug);
23int avc_general_get_plug_info(struct fw_unit *unit, unsigned int subunit_type,
24 unsigned int subunit_id, unsigned int subfunction,
25 u8 info[AVC_PLUG_INFO_BUF_BYTES]);
26
Clemens Ladisch31ef9132011-03-15 07:53:21 +010027int fcp_avc_transaction(struct fw_unit *unit,
28 const void *command, unsigned int command_size,
29 void *response, unsigned int response_size,
30 unsigned int response_match_bytes);
31void fcp_bus_reset(struct fw_unit *unit);
32
33#endif