Merge tag 'media/v4.20-7' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab...
[linux-2.6-block.git] / sound / firewire / fcp.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef SOUND_FIREWIRE_FCP_H_INCLUDED
3 #define SOUND_FIREWIRE_FCP_H_INCLUDED
4
5 #define AVC_PLUG_INFO_BUF_BYTES 4
6
7 struct fw_unit;
8
9 /*
10  * AV/C Digital Interface Command Set General Specification 4.2
11  * (Sep 2004, 1394TA)
12  */
13 enum avc_general_plug_dir {
14         AVC_GENERAL_PLUG_DIR_IN         = 0,
15         AVC_GENERAL_PLUG_DIR_OUT        = 1,
16         AVC_GENERAL_PLUG_DIR_COUNT
17 };
18 int avc_general_set_sig_fmt(struct fw_unit *unit, unsigned int rate,
19                             enum avc_general_plug_dir dir,
20                             unsigned short plug);
21 int avc_general_get_sig_fmt(struct fw_unit *unit, unsigned int *rate,
22                             enum avc_general_plug_dir dir,
23                             unsigned short plug);
24 int avc_general_get_plug_info(struct fw_unit *unit, unsigned int subunit_type,
25                               unsigned int subunit_id, unsigned int subfunction,
26                               u8 info[AVC_PLUG_INFO_BUF_BYTES]);
27
28 int fcp_avc_transaction(struct fw_unit *unit,
29                         const void *command, unsigned int command_size,
30                         void *response, unsigned int response_size,
31                         unsigned int response_match_bytes);
32 void fcp_bus_reset(struct fw_unit *unit);
33
34 #endif