Lines Matching refs:opts
474 static void setup_headers(struct f_uac1_opts *opts, in setup_headers() argument
512 if (EPOUT_EN(opts)) { in setup_headers()
515 if (FUOUT_EN(opts)) in setup_headers()
519 if (EPIN_EN(opts)) { in setup_headers()
522 if (FUIN_EN(opts)) in setup_headers()
526 if (FUOUT_EN(opts) || FUIN_EN(opts)) { in setup_headers()
532 if (EPOUT_EN(opts)) { in setup_headers()
542 if (EPIN_EN(opts)) { in setup_headers()
565 struct f_uac1_opts *opts = g_audio_to_uac1_opts(agdev); in uac_cs_attr_sample_rate() local
575 if (EPIN_EN(opts) && uac1->ctl_id == agdev->in_ep->address) { in uac_cs_attr_sample_rate()
578 } else if (EPOUT_EN(opts) && uac1->ctl_id == agdev->out_ep->address) { in uac_cs_attr_sample_rate()
652 struct f_uac1_opts *opts = g_audio_to_uac1_opts(audio); in in_rq_cur() local
660 if ((FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) || in in_rq_cur()
661 (FUOUT_EN(opts) && (entity_id == USB_OUT_FU_ID))) { in in_rq_cur()
664 if (FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) in in_rq_cur()
703 struct f_uac1_opts *opts = g_audio_to_uac1_opts(audio); in in_rq_min() local
711 if ((FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) || in in_rq_min()
712 (FUOUT_EN(opts) && (entity_id == USB_OUT_FU_ID))) { in in_rq_min()
715 if (FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) in in_rq_min()
723 min_db = opts->p_volume_min; in in_rq_min()
725 min_db = opts->c_volume_min; in in_rq_min()
750 struct f_uac1_opts *opts = g_audio_to_uac1_opts(audio); in in_rq_max() local
758 if ((FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) || in in_rq_max()
759 (FUOUT_EN(opts) && (entity_id == USB_OUT_FU_ID))) { in in_rq_max()
762 if (FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) in in_rq_max()
770 max_db = opts->p_volume_max; in in_rq_max()
772 max_db = opts->c_volume_max; in in_rq_max()
797 struct f_uac1_opts *opts = g_audio_to_uac1_opts(audio); in in_rq_res() local
805 if ((FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) || in in_rq_res()
806 (FUOUT_EN(opts) && (entity_id == USB_OUT_FU_ID))) { in in_rq_res()
809 if (FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) in in_rq_res()
817 res_db = opts->p_volume_res; in in_rq_res()
819 res_db = opts->c_volume_res; in in_rq_res()
844 struct f_uac1_opts *opts = g_audio_to_uac1_opts(audio); in out_rq_complete() local
857 if ((FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) || in out_rq_complete()
858 (FUOUT_EN(opts) && (entity_id == USB_OUT_FU_ID))) { in out_rq_complete()
861 if (FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) in out_rq_complete()
884 opts->p_volume_min = volume; in out_rq_complete()
886 opts->c_volume_min = volume; in out_rq_complete()
890 opts->p_volume_max = volume; in out_rq_complete()
892 opts->c_volume_max = volume; in out_rq_complete()
896 opts->p_volume_res = volume; in out_rq_complete()
898 opts->c_volume_res = volume; in out_rq_complete()
927 struct f_uac1_opts *opts = g_audio_to_uac1_opts(audio); in ac_rq_out() local
935 if ((FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) || in ac_rq_out()
936 (FUOUT_EN(opts) && (entity_id == USB_OUT_FU_ID))) { in ac_rq_out()
1035 struct f_uac1_opts *opts = g_audio_to_uac1_opts(agdev); in audio_get_endpoint_req() local
1050 if (EPIN_EN(opts) && ep == agdev->in_ep->address) in audio_get_endpoint_req()
1052 else if (EPOUT_EN(opts) && ep == agdev->out_ep->address) in audio_get_endpoint_req()
1244 uac1_ac_header_descriptor *build_ac_header_desc(struct f_uac1_opts *opts) in build_ac_header_desc() argument
1250 if (EPOUT_EN(opts)) in build_ac_header_desc()
1252 if (EPIN_EN(opts)) in build_ac_header_desc()
1272 static void setup_descriptor(struct f_uac1_opts *opts) in setup_descriptor() argument
1277 if (EPOUT_EN(opts)) in setup_descriptor()
1279 if (EPIN_EN(opts)) in setup_descriptor()
1281 if (EPOUT_EN(opts)) in setup_descriptor()
1283 if (EPIN_EN(opts)) in setup_descriptor()
1285 if (FUOUT_EN(opts)) in setup_descriptor()
1287 if (FUIN_EN(opts)) in setup_descriptor()
1290 if (FUIN_EN(opts)) { in setup_descriptor()
1296 if (FUOUT_EN(opts)) { in setup_descriptor()
1309 if (EPIN_EN(opts)) { in setup_descriptor()
1314 if (FUIN_EN(opts)) in setup_descriptor()
1319 if (EPOUT_EN(opts)) { in setup_descriptor()
1324 if (FUOUT_EN(opts)) in setup_descriptor()
1330 setup_headers(opts, fs_audio_desc, USB_SPEED_FULL); in setup_descriptor()
1331 setup_headers(opts, hs_audio_desc, USB_SPEED_HIGH); in setup_descriptor()
1332 setup_headers(opts, ss_audio_desc, USB_SPEED_SUPER); in setup_descriptor()
1337 struct f_uac1_opts *opts = g_audio_to_uac1_opts(audio); in f_audio_validate_opts() local
1339 if (!opts->p_chmask && !opts->c_chmask) { in f_audio_validate_opts()
1342 } else if (opts->p_chmask & ~UAC1_CHANNEL_MASK) { in f_audio_validate_opts()
1345 } else if (opts->c_chmask & ~UAC1_CHANNEL_MASK) { in f_audio_validate_opts()
1348 } else if ((opts->p_ssize < 1) || (opts->p_ssize > 4)) { in f_audio_validate_opts()
1351 } else if ((opts->c_ssize < 1) || (opts->c_ssize > 4)) { in f_audio_validate_opts()
1354 } else if (!opts->p_srates[0]) { in f_audio_validate_opts()
1357 } else if (!opts->c_srates[0]) { in f_audio_validate_opts()
1362 if (opts->p_volume_max <= opts->p_volume_min) { in f_audio_validate_opts()
1365 } else if (opts->c_volume_max <= opts->c_volume_min) { in f_audio_validate_opts()
1368 } else if (opts->p_volume_res <= 0) { in f_audio_validate_opts()
1371 } else if (opts->c_volume_res <= 0) { in f_audio_validate_opts()
1376 if ((opts->p_volume_max - opts->p_volume_min) % opts->p_volume_res) { in f_audio_validate_opts()
1379 } else if ((opts->c_volume_max - opts->c_volume_min) % opts->c_volume_res) { in f_audio_validate_opts()
1387 static int set_ep_max_packet_size(const struct f_uac1_opts *opts, in set_ep_max_packet_size() argument
1414 chmask = opts->p_chmask; in set_ep_max_packet_size()
1416 if (opts->p_srates[i] == 0) in set_ep_max_packet_size()
1418 if (opts->p_srates[i] > srate) in set_ep_max_packet_size()
1419 srate = opts->p_srates[i]; in set_ep_max_packet_size()
1421 ssize = opts->p_ssize; in set_ep_max_packet_size()
1423 chmask = opts->c_chmask; in set_ep_max_packet_size()
1425 if (opts->c_srates[i] == 0) in set_ep_max_packet_size()
1427 if (opts->c_srates[i] > srate) in set_ep_max_packet_size()
1428 srate = opts->c_srates[i]; in set_ep_max_packet_size()
1430 ssize = opts->c_ssize; in set_ep_max_packet_size()
1749 struct f_uac1_opts *opts = to_f_uac1_opts(item); in f_uac1_attr_release() local
1751 usb_put_function_instance(&opts->func_inst); in f_uac1_attr_release()
1771 struct f_uac1_opts *opts = to_f_uac1_opts(item); \
1774 mutex_lock(&opts->lock); \
1775 result = sprintf(page, type##_fmt, opts->name); \
1776 mutex_unlock(&opts->lock); \
1785 struct f_uac1_opts *opts = to_f_uac1_opts(item); \
1789 mutex_lock(&opts->lock); \
1790 if (opts->refcnt) { \
1799 opts->name = num; \
1803 mutex_unlock(&opts->lock); \
1813 struct f_uac1_opts *opts = to_f_uac1_opts(item); \
1817 mutex_lock(&opts->lock); \
1820 if (opts->name##s[i] == 0) \
1823 opts->name##s[i]); \
1827 mutex_unlock(&opts->lock); \
1835 struct f_uac1_opts *opts = to_f_uac1_opts(item); \
1842 mutex_lock(&opts->lock); \
1843 if (opts->refcnt) { \
1849 memset(opts->name##s, 0x00, sizeof(opts->name##s)); \
1856 opts->name##s[i++] = num; \
1862 mutex_unlock(&opts->lock); \
1872 struct f_uac1_opts *opts = to_f_uac1_opts(item); \
1875 mutex_lock(&opts->lock); \
1876 result = snprintf(page, sizeof(opts->name), "%s", opts->name); \
1877 mutex_unlock(&opts->lock); \
1885 struct f_uac1_opts *opts = to_f_uac1_opts(item); \
1888 mutex_lock(&opts->lock); \
1889 if (opts->refcnt) { \
1894 ret = snprintf(opts->name, min(sizeof(opts->name), len), \
1898 mutex_unlock(&opts->lock); \
1959 struct f_uac1_opts *opts; in f_audio_free_inst() local
1961 opts = container_of(f, struct f_uac1_opts, func_inst); in f_audio_free_inst()
1962 kfree(opts); in f_audio_free_inst()
1967 struct f_uac1_opts *opts; in f_audio_alloc_inst() local
1969 opts = kzalloc(sizeof(*opts), GFP_KERNEL); in f_audio_alloc_inst()
1970 if (!opts) in f_audio_alloc_inst()
1973 mutex_init(&opts->lock); in f_audio_alloc_inst()
1974 opts->func_inst.free_func_inst = f_audio_free_inst; in f_audio_alloc_inst()
1976 config_group_init_type_name(&opts->func_inst.group, "", in f_audio_alloc_inst()
1979 opts->c_chmask = UAC1_DEF_CCHMASK; in f_audio_alloc_inst()
1980 opts->c_srates[0] = UAC1_DEF_CSRATE; in f_audio_alloc_inst()
1981 opts->c_ssize = UAC1_DEF_CSSIZE; in f_audio_alloc_inst()
1982 opts->p_chmask = UAC1_DEF_PCHMASK; in f_audio_alloc_inst()
1983 opts->p_srates[0] = UAC1_DEF_PSRATE; in f_audio_alloc_inst()
1984 opts->p_ssize = UAC1_DEF_PSSIZE; in f_audio_alloc_inst()
1986 opts->p_mute_present = UAC1_DEF_MUTE_PRESENT; in f_audio_alloc_inst()
1987 opts->p_volume_present = UAC1_DEF_VOLUME_PRESENT; in f_audio_alloc_inst()
1988 opts->p_volume_min = UAC1_DEF_MIN_DB; in f_audio_alloc_inst()
1989 opts->p_volume_max = UAC1_DEF_MAX_DB; in f_audio_alloc_inst()
1990 opts->p_volume_res = UAC1_DEF_RES_DB; in f_audio_alloc_inst()
1992 opts->c_mute_present = UAC1_DEF_MUTE_PRESENT; in f_audio_alloc_inst()
1993 opts->c_volume_present = UAC1_DEF_VOLUME_PRESENT; in f_audio_alloc_inst()
1994 opts->c_volume_min = UAC1_DEF_MIN_DB; in f_audio_alloc_inst()
1995 opts->c_volume_max = UAC1_DEF_MAX_DB; in f_audio_alloc_inst()
1996 opts->c_volume_res = UAC1_DEF_RES_DB; in f_audio_alloc_inst()
1998 opts->req_number = UAC1_DEF_REQ_NUM; in f_audio_alloc_inst()
2000 snprintf(opts->function_name, sizeof(opts->function_name), "Source/Sink"); in f_audio_alloc_inst()
2002 return &opts->func_inst; in f_audio_alloc_inst()
2008 struct f_uac1_opts *opts; in f_audio_free() local
2011 opts = container_of(f->fi, struct f_uac1_opts, func_inst); in f_audio_free()
2013 mutex_lock(&opts->lock); in f_audio_free()
2014 --opts->refcnt; in f_audio_free()
2015 mutex_unlock(&opts->lock); in f_audio_free()
2039 struct f_uac1_opts *opts; in f_audio_alloc() local
2046 opts = container_of(fi, struct f_uac1_opts, func_inst); in f_audio_alloc()
2047 mutex_lock(&opts->lock); in f_audio_alloc()
2048 ++opts->refcnt; in f_audio_alloc()
2049 mutex_unlock(&opts->lock); in f_audio_alloc()