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