/* SPDX-License-Identifier: GPL-2.0 */ /* * u_uac1.h - Utility definitions for UAC1 function * * Copyright (C) 2016 Ruslan Bilovol */ #ifndef __U_UAC1_H #define __U_UAC1_H #include #include "uac_common.h" #define UAC1_OUT_EP_MAX_PACKET_SIZE 200 #define UAC1_DEF_CCHMASK 0x3 #define UAC1_DEF_CSRATE 48000 #define UAC1_DEF_CSSIZE 2 #define UAC1_DEF_PCHMASK 0x3 #define UAC1_DEF_PSRATE 48000 #define UAC1_DEF_PSSIZE 2 #define UAC1_DEF_REQ_NUM 2 #define UAC1_DEF_INT_REQ_NUM 10 #define UAC1_DEF_MUTE_PRESENT 1 #define UAC1_DEF_VOLUME_PRESENT 1 #define UAC1_DEF_MIN_DB (-100*256) /* -100 dB */ #define UAC1_DEF_MAX_DB 0 /* 0 dB */ #define UAC1_DEF_RES_DB (1*256) /* 1 dB */ struct f_uac1_opts { struct usb_function_instance func_inst; int c_chmask; int c_srates[UAC_MAX_RATES]; int c_ssize; int p_chmask; int p_srates[UAC_MAX_RATES]; int p_ssize; bool p_mute_present; bool p_volume_present; s16 p_volume_min; s16 p_volume_max; s16 p_volume_res; bool c_mute_present; bool c_volume_present; s16 c_volume_min; s16 c_volume_max; s16 c_volume_res; int req_number; unsigned bound:1; char function_name[USB_MAX_STRING_LEN]; char p_it_name[USB_MAX_STRING_LEN]; char p_it_ch_name[USB_MAX_STRING_LEN]; char p_ot_name[USB_MAX_STRING_LEN]; char p_fu_vol_name[USB_MAX_STRING_LEN]; char c_it_name[USB_MAX_STRING_LEN]; char c_it_ch_name[USB_MAX_STRING_LEN]; char c_ot_name[USB_MAX_STRING_LEN]; char c_fu_vol_name[USB_MAX_STRING_LEN]; struct mutex lock; int refcnt; }; #endif /* __U_UAC1_H */