Lines Matching refs:opts
803 static void setup_headers(struct f_uac2_opts *opts, in setup_headers() argument
845 if (EPIN_EN(opts)) in setup_headers()
847 if (EPOUT_EN(opts)) { in setup_headers()
851 if (FUOUT_EN(opts)) in setup_headers()
855 if (EPIN_EN(opts)) { in setup_headers()
858 if (FUIN_EN(opts)) in setup_headers()
864 if (EPOUT_EN(opts)) in setup_headers()
867 if (FUOUT_EN(opts) || FUIN_EN(opts)) { in setup_headers()
873 if (EPOUT_EN(opts)) { in setup_headers()
884 if (EPOUT_FBACK_IN_EN(opts)) { in setup_headers()
891 if (EPIN_EN(opts)) { in setup_headers()
905 static void setup_descriptor(struct f_uac2_opts *opts) in setup_descriptor() argument
910 if (EPOUT_EN(opts)) in setup_descriptor()
912 if (EPIN_EN(opts)) in setup_descriptor()
914 if (EPOUT_EN(opts)) in setup_descriptor()
916 if (EPIN_EN(opts)) in setup_descriptor()
918 if (FUOUT_EN(opts)) in setup_descriptor()
920 if (FUIN_EN(opts)) in setup_descriptor()
922 if (EPOUT_EN(opts)) in setup_descriptor()
924 if (EPIN_EN(opts)) in setup_descriptor()
929 if (FUIN_EN(opts)) { in setup_descriptor()
940 if (FUOUT_EN(opts)) { in setup_descriptor()
953 if (EPIN_EN(opts)) { in setup_descriptor()
959 if (FUIN_EN(opts)) in setup_descriptor()
966 if (EPOUT_EN(opts)) { in setup_descriptor()
972 if (FUOUT_EN(opts)) in setup_descriptor()
980 setup_headers(opts, fs_audio_desc, USB_SPEED_FULL); in setup_descriptor()
981 setup_headers(opts, hs_audio_desc, USB_SPEED_HIGH); in setup_descriptor()
982 setup_headers(opts, ss_audio_desc, USB_SPEED_SUPER); in setup_descriptor()
987 struct f_uac2_opts *opts = g_audio_to_uac2_opts(agdev); in afunc_validate_opts() local
990 if (!opts->p_chmask && !opts->c_chmask) in afunc_validate_opts()
992 else if (opts->p_chmask & ~UAC2_CHANNEL_MASK) in afunc_validate_opts()
994 else if (opts->c_chmask & ~UAC2_CHANNEL_MASK) in afunc_validate_opts()
996 else if ((opts->p_ssize < 1) || (opts->p_ssize > 4)) in afunc_validate_opts()
998 else if ((opts->c_ssize < 1) || (opts->c_ssize > 4)) in afunc_validate_opts()
1000 else if (!opts->p_srates[0]) in afunc_validate_opts()
1002 else if (!opts->c_srates[0]) in afunc_validate_opts()
1005 else if (opts->p_volume_max <= opts->p_volume_min) in afunc_validate_opts()
1007 else if (opts->c_volume_max <= opts->c_volume_min) in afunc_validate_opts()
1009 else if (opts->p_volume_res <= 0) in afunc_validate_opts()
1011 else if (opts->c_volume_res <= 0) in afunc_validate_opts()
1014 else if ((opts->p_volume_max - opts->p_volume_min) % opts->p_volume_res) in afunc_validate_opts()
1016 else if ((opts->c_volume_max - opts->c_volume_min) % opts->c_volume_res) in afunc_validate_opts()
1019 else if ((opts->p_hs_bint < 0) || (opts->p_hs_bint > 4)) in afunc_validate_opts()
1021 else if ((opts->c_hs_bint < 0) || (opts->c_hs_bint > 4)) in afunc_validate_opts()
1518 struct f_uac2_opts *opts = g_audio_to_uac2_opts(agdev); in in_rq_cur() local
1551 } else if ((FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) || in in_rq_cur()
1552 (FUOUT_EN(opts) && (entity_id == USB_OUT_FU_ID))) { in in_rq_cur()
1555 if (FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) in in_rq_cur()
1595 struct f_uac2_opts *opts = g_audio_to_uac2_opts(agdev); in in_rq_range() local
1612 srates = opts->p_srates; in in_rq_range()
1614 srates = opts->c_srates; in in_rq_range()
1640 } else if ((FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) || in in_rq_range()
1641 (FUOUT_EN(opts) && (entity_id == USB_OUT_FU_ID))) { in in_rq_range()
1644 if (FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) in in_rq_range()
1652 max_db = opts->p_volume_max; in in_rq_range()
1653 min_db = opts->p_volume_min; in in_rq_range()
1654 res_db = opts->p_volume_res; in in_rq_range()
1656 max_db = opts->c_volume_max; in in_rq_range()
1657 min_db = opts->c_volume_min; in in_rq_range()
1658 res_db = opts->c_volume_res; in in_rq_range()
1717 struct f_uac2_opts *opts = g_audio_to_uac2_opts(agdev); in out_rq_cur_complete() local
1730 if ((FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) || in out_rq_cur_complete()
1731 (FUOUT_EN(opts) && (entity_id == USB_OUT_FU_ID))) { in out_rq_cur_complete()
1734 if (FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) in out_rq_cur_complete()
1766 struct f_uac2_opts *opts = g_audio_to_uac2_opts(agdev); in out_rq_cur() local
1784 } else if ((FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) || in out_rq_cur()
1785 (FUOUT_EN(opts) && (entity_id == USB_OUT_FU_ID))) { in out_rq_cur()
1862 struct f_uac2_opts *opts = to_f_uac2_opts(item); in f_uac2_attr_release() local
1864 usb_put_function_instance(&opts->func_inst); in f_uac2_attr_release()
1885 struct f_uac2_opts *opts = to_f_uac2_opts(item); \
1888 mutex_lock(&opts->lock); \
1889 result = sprintf(page, type##_fmt, opts->name); \
1890 mutex_unlock(&opts->lock); \
1898 struct f_uac2_opts *opts = to_f_uac2_opts(item); \
1902 mutex_lock(&opts->lock); \
1903 if (opts->refcnt) { \
1912 opts->name = num; \
1916 mutex_unlock(&opts->lock); \
1926 struct f_uac2_opts *opts = to_f_uac2_opts(item); \
1930 mutex_lock(&opts->lock); \
1931 switch (opts->name) { \
1943 mutex_unlock(&opts->lock); \
1951 struct f_uac2_opts *opts = to_f_uac2_opts(item); \
1954 mutex_lock(&opts->lock); \
1955 if (opts->refcnt) { \
1961 opts->name = USB_ENDPOINT_SYNC_ASYNC; \
1963 opts->name = USB_ENDPOINT_SYNC_ADAPTIVE; \
1972 mutex_unlock(&opts->lock); \
1982 struct f_uac2_opts *opts = to_f_uac2_opts(item); \
1986 mutex_lock(&opts->lock); \
1989 if (opts->name##s[i] == 0) \
1992 opts->name##s[i]); \
1996 mutex_unlock(&opts->lock); \
2004 struct f_uac2_opts *opts = to_f_uac2_opts(item); \
2011 mutex_lock(&opts->lock); \
2012 if (opts->refcnt) { \
2018 memset(opts->name##s, 0x00, sizeof(opts->name##s)); \
2025 opts->name##s[i++] = num; \
2031 mutex_unlock(&opts->lock); \
2041 struct f_uac2_opts *opts = to_f_uac2_opts(item); \
2044 mutex_lock(&opts->lock); \
2045 result = snprintf(page, sizeof(opts->name), "%s", opts->name); \
2046 mutex_unlock(&opts->lock); \
2054 struct f_uac2_opts *opts = to_f_uac2_opts(item); \
2057 mutex_lock(&opts->lock); \
2058 if (opts->refcnt) { \
2063 ret = snprintf(opts->name, min(sizeof(opts->name), len), \
2067 mutex_unlock(&opts->lock); \
2136 struct f_uac2_opts *opts; in afunc_free_inst() local
2138 opts = container_of(f, struct f_uac2_opts, func_inst); in afunc_free_inst()
2139 kfree(opts); in afunc_free_inst()
2144 struct f_uac2_opts *opts; in afunc_alloc_inst() local
2146 opts = kzalloc(sizeof(*opts), GFP_KERNEL); in afunc_alloc_inst()
2147 if (!opts) in afunc_alloc_inst()
2150 mutex_init(&opts->lock); in afunc_alloc_inst()
2151 opts->func_inst.free_func_inst = afunc_free_inst; in afunc_alloc_inst()
2153 config_group_init_type_name(&opts->func_inst.group, "", in afunc_alloc_inst()
2156 opts->p_chmask = UAC2_DEF_PCHMASK; in afunc_alloc_inst()
2157 opts->p_srates[0] = UAC2_DEF_PSRATE; in afunc_alloc_inst()
2158 opts->p_ssize = UAC2_DEF_PSSIZE; in afunc_alloc_inst()
2159 opts->p_hs_bint = UAC2_DEF_PHSBINT; in afunc_alloc_inst()
2160 opts->c_chmask = UAC2_DEF_CCHMASK; in afunc_alloc_inst()
2161 opts->c_srates[0] = UAC2_DEF_CSRATE; in afunc_alloc_inst()
2162 opts->c_ssize = UAC2_DEF_CSSIZE; in afunc_alloc_inst()
2163 opts->c_hs_bint = UAC2_DEF_CHSBINT; in afunc_alloc_inst()
2164 opts->c_sync = UAC2_DEF_CSYNC; in afunc_alloc_inst()
2166 opts->p_mute_present = UAC2_DEF_MUTE_PRESENT; in afunc_alloc_inst()
2167 opts->p_volume_present = UAC2_DEF_VOLUME_PRESENT; in afunc_alloc_inst()
2168 opts->p_volume_min = UAC2_DEF_MIN_DB; in afunc_alloc_inst()
2169 opts->p_volume_max = UAC2_DEF_MAX_DB; in afunc_alloc_inst()
2170 opts->p_volume_res = UAC2_DEF_RES_DB; in afunc_alloc_inst()
2172 opts->c_mute_present = UAC2_DEF_MUTE_PRESENT; in afunc_alloc_inst()
2173 opts->c_volume_present = UAC2_DEF_VOLUME_PRESENT; in afunc_alloc_inst()
2174 opts->c_volume_min = UAC2_DEF_MIN_DB; in afunc_alloc_inst()
2175 opts->c_volume_max = UAC2_DEF_MAX_DB; in afunc_alloc_inst()
2176 opts->c_volume_res = UAC2_DEF_RES_DB; in afunc_alloc_inst()
2178 opts->req_number = UAC2_DEF_REQ_NUM; in afunc_alloc_inst()
2179 opts->fb_max = FBACK_FAST_MAX; in afunc_alloc_inst()
2181 snprintf(opts->function_name, sizeof(opts->function_name), "Source/Sink"); in afunc_alloc_inst()
2183 return &opts->func_inst; in afunc_alloc_inst()
2189 struct f_uac2_opts *opts; in afunc_free() local
2192 opts = container_of(f->fi, struct f_uac2_opts, func_inst); in afunc_free()
2194 mutex_lock(&opts->lock); in afunc_free()
2195 --opts->refcnt; in afunc_free()
2196 mutex_unlock(&opts->lock); in afunc_free()
2217 struct f_uac2_opts *opts; in afunc_alloc() local
2223 opts = container_of(fi, struct f_uac2_opts, func_inst); in afunc_alloc()
2224 mutex_lock(&opts->lock); in afunc_alloc()
2225 ++opts->refcnt; in afunc_alloc()
2226 mutex_unlock(&opts->lock); in afunc_alloc()