2020-03-28 16:41:15 +05:30
|
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
2017-06-18 16:23:54 +03:00
|
|
|
/*
|
|
|
|
* u_uac1.h - Utility definitions for UAC1 function
|
|
|
|
*
|
|
|
|
* Copyright (C) 2016 Ruslan Bilovol <ruslan.bilovol@gmail.com>
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __U_UAC1_H
|
|
|
|
#define __U_UAC1_H
|
|
|
|
|
|
|
|
#include <linux/usb/composite.h>
|
2022-01-21 16:53:04 +01:00
|
|
|
#include "uac_common.h"
|
2017-06-18 16:23:54 +03:00
|
|
|
|
|
|
|
#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
|
2021-07-12 14:55:29 +02:00
|
|
|
#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 */
|
2017-06-18 16:23:54 +03:00
|
|
|
|
|
|
|
|
|
|
|
struct f_uac1_opts {
|
|
|
|
struct usb_function_instance func_inst;
|
|
|
|
int c_chmask;
|
2022-01-21 16:53:04 +01:00
|
|
|
int c_srates[UAC_MAX_RATES];
|
2017-06-18 16:23:54 +03:00
|
|
|
int c_ssize;
|
|
|
|
int p_chmask;
|
2022-01-21 16:53:04 +01:00
|
|
|
int p_srates[UAC_MAX_RATES];
|
2017-06-18 16:23:54 +03:00
|
|
|
int p_ssize;
|
2021-07-12 14:55:29 +02:00
|
|
|
|
|
|
|
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;
|
|
|
|
|
2017-06-18 16:23:54 +03:00
|
|
|
int req_number;
|
|
|
|
unsigned bound:1;
|
|
|
|
|
2024-04-23 14:09:04 +00:00
|
|
|
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];
|
2024-08-03 20:29:13 -04:00
|
|
|
char p_fu_vol_name[USB_MAX_STRING_LEN];
|
2024-04-23 14:09:04 +00:00
|
|
|
|
|
|
|
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];
|
2024-08-03 20:29:13 -04:00
|
|
|
char c_fu_vol_name[USB_MAX_STRING_LEN];
|
2022-01-22 19:24:40 +08:00
|
|
|
|
2017-06-18 16:23:54 +03:00
|
|
|
struct mutex lock;
|
|
|
|
int refcnt;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* __U_UAC1_H */
|