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