Lines Matching refs:opts
717 static void setup_headers(struct f_uac2_opts *opts, in setup_headers() argument
757 if (EPIN_EN(opts)) in setup_headers()
759 if (EPOUT_EN(opts)) { in setup_headers()
763 if (FUOUT_EN(opts)) in setup_headers()
767 if (EPIN_EN(opts)) { in setup_headers()
770 if (FUIN_EN(opts)) in setup_headers()
776 if (EPOUT_EN(opts)) in setup_headers()
779 if (FUOUT_EN(opts) || FUIN_EN(opts)) in setup_headers()
782 if (EPOUT_EN(opts)) { in setup_headers()
793 if (EPOUT_FBACK_IN_EN(opts)) { in setup_headers()
800 if (EPIN_EN(opts)) { in setup_headers()
814 static void setup_descriptor(struct f_uac2_opts *opts) in setup_descriptor() argument
819 if (EPOUT_EN(opts)) in setup_descriptor()
821 if (EPIN_EN(opts)) in setup_descriptor()
823 if (EPOUT_EN(opts)) in setup_descriptor()
825 if (EPIN_EN(opts)) in setup_descriptor()
827 if (FUOUT_EN(opts)) in setup_descriptor()
829 if (FUIN_EN(opts)) in setup_descriptor()
831 if (EPOUT_EN(opts)) in setup_descriptor()
833 if (EPIN_EN(opts)) in setup_descriptor()
838 if (FUIN_EN(opts)) { in setup_descriptor()
849 if (FUOUT_EN(opts)) { in setup_descriptor()
862 if (EPIN_EN(opts)) { in setup_descriptor()
868 if (FUIN_EN(opts)) in setup_descriptor()
875 if (EPOUT_EN(opts)) { in setup_descriptor()
881 if (FUOUT_EN(opts)) in setup_descriptor()
889 setup_headers(opts, fs_audio_desc, USB_SPEED_FULL); in setup_descriptor()
890 setup_headers(opts, hs_audio_desc, USB_SPEED_HIGH); in setup_descriptor()
891 setup_headers(opts, ss_audio_desc, USB_SPEED_SUPER); in setup_descriptor()
896 struct f_uac2_opts *opts = g_audio_to_uac2_opts(agdev); in afunc_validate_opts() local
898 if (!opts->p_chmask && !opts->c_chmask) { in afunc_validate_opts()
901 } else if (opts->p_chmask & ~UAC2_CHANNEL_MASK) { in afunc_validate_opts()
904 } else if (opts->c_chmask & ~UAC2_CHANNEL_MASK) { in afunc_validate_opts()
907 } else if ((opts->p_ssize < 1) || (opts->p_ssize > 4)) { in afunc_validate_opts()
910 } else if ((opts->c_ssize < 1) || (opts->c_ssize > 4)) { in afunc_validate_opts()
913 } else if (!opts->p_srate) { in afunc_validate_opts()
916 } else if (!opts->c_srate) { in afunc_validate_opts()
921 if (opts->p_volume_max <= opts->p_volume_min) { in afunc_validate_opts()
924 } else if (opts->c_volume_max <= opts->c_volume_min) { in afunc_validate_opts()
927 } else if (opts->p_volume_res <= 0) { in afunc_validate_opts()
930 } else if (opts->c_volume_res <= 0) { in afunc_validate_opts()
935 if ((opts->p_volume_max - opts->p_volume_min) % opts->p_volume_res) { in afunc_validate_opts()
938 } else if ((opts->c_volume_max - opts->c_volume_min) % opts->c_volume_res) { in afunc_validate_opts()
1417 struct f_uac2_opts *opts = g_audio_to_uac2_opts(agdev); in in_rq_cur() local
1426 p_srate = opts->p_srate; in in_rq_cur()
1427 c_srate = opts->c_srate; in in_rq_cur()
1450 } else if ((FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) || in in_rq_cur()
1451 (FUOUT_EN(opts) && (entity_id == USB_OUT_FU_ID))) { in in_rq_cur()
1454 if (FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) in in_rq_cur()
1494 struct f_uac2_opts *opts = g_audio_to_uac2_opts(agdev); in in_rq_range() local
1503 p_srate = opts->p_srate; in in_rq_range()
1504 c_srate = opts->c_srate; in in_rq_range()
1528 } else if ((FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) || in in_rq_range()
1529 (FUOUT_EN(opts) && (entity_id == USB_OUT_FU_ID))) { in in_rq_range()
1532 if (FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) in in_rq_range()
1540 max_db = opts->p_volume_max; in in_rq_range()
1541 min_db = opts->p_volume_min; in in_rq_range()
1542 res_db = opts->p_volume_res; in in_rq_range()
1544 max_db = opts->c_volume_max; in in_rq_range()
1545 min_db = opts->c_volume_min; in in_rq_range()
1546 res_db = opts->c_volume_res; in in_rq_range()
1586 struct f_uac2_opts *opts = g_audio_to_uac2_opts(agdev); in out_rq_cur_complete() local
1599 if ((FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) || in out_rq_cur_complete()
1600 (FUOUT_EN(opts) && (entity_id == USB_OUT_FU_ID))) { in out_rq_cur_complete()
1603 if (FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) in out_rq_cur_complete()
1634 struct f_uac2_opts *opts = g_audio_to_uac2_opts(agdev); in out_rq_cur() local
1645 } else if ((FUIN_EN(opts) && (entity_id == USB_IN_FU_ID)) || in out_rq_cur()
1646 (FUOUT_EN(opts) && (entity_id == USB_OUT_FU_ID))) { in out_rq_cur()
1723 struct f_uac2_opts *opts = to_f_uac2_opts(item); in f_uac2_attr_release() local
1725 usb_put_function_instance(&opts->func_inst); in f_uac2_attr_release()
1744 struct f_uac2_opts *opts = to_f_uac2_opts(item); \
1747 mutex_lock(&opts->lock); \
1748 result = sprintf(page, type##_fmt, opts->name); \
1749 mutex_unlock(&opts->lock); \
1757 struct f_uac2_opts *opts = to_f_uac2_opts(item); \
1761 mutex_lock(&opts->lock); \
1762 if (opts->refcnt) { \
1771 opts->name = num; \
1775 mutex_unlock(&opts->lock); \
1785 struct f_uac2_opts *opts = to_f_uac2_opts(item); \
1789 mutex_lock(&opts->lock); \
1790 switch (opts->name) { \
1802 mutex_unlock(&opts->lock); \
1810 struct f_uac2_opts *opts = to_f_uac2_opts(item); \
1813 mutex_lock(&opts->lock); \
1814 if (opts->refcnt) { \
1820 opts->name = USB_ENDPOINT_SYNC_ASYNC; \
1822 opts->name = USB_ENDPOINT_SYNC_ADAPTIVE; \
1831 mutex_unlock(&opts->lock); \
1893 struct f_uac2_opts *opts; in afunc_free_inst() local
1895 opts = container_of(f, struct f_uac2_opts, func_inst); in afunc_free_inst()
1896 kfree(opts); in afunc_free_inst()
1901 struct f_uac2_opts *opts; in afunc_alloc_inst() local
1903 opts = kzalloc(sizeof(*opts), GFP_KERNEL); in afunc_alloc_inst()
1904 if (!opts) in afunc_alloc_inst()
1907 mutex_init(&opts->lock); in afunc_alloc_inst()
1908 opts->func_inst.free_func_inst = afunc_free_inst; in afunc_alloc_inst()
1910 config_group_init_type_name(&opts->func_inst.group, "", in afunc_alloc_inst()
1913 opts->p_chmask = UAC2_DEF_PCHMASK; in afunc_alloc_inst()
1914 opts->p_srate = UAC2_DEF_PSRATE; in afunc_alloc_inst()
1915 opts->p_ssize = UAC2_DEF_PSSIZE; in afunc_alloc_inst()
1916 opts->c_chmask = UAC2_DEF_CCHMASK; in afunc_alloc_inst()
1917 opts->c_srate = UAC2_DEF_CSRATE; in afunc_alloc_inst()
1918 opts->c_ssize = UAC2_DEF_CSSIZE; in afunc_alloc_inst()
1919 opts->c_sync = UAC2_DEF_CSYNC; in afunc_alloc_inst()
1921 opts->p_mute_present = UAC2_DEF_MUTE_PRESENT; in afunc_alloc_inst()
1922 opts->p_volume_present = UAC2_DEF_VOLUME_PRESENT; in afunc_alloc_inst()
1923 opts->p_volume_min = UAC2_DEF_MIN_DB; in afunc_alloc_inst()
1924 opts->p_volume_max = UAC2_DEF_MAX_DB; in afunc_alloc_inst()
1925 opts->p_volume_res = UAC2_DEF_RES_DB; in afunc_alloc_inst()
1927 opts->c_mute_present = UAC2_DEF_MUTE_PRESENT; in afunc_alloc_inst()
1928 opts->c_volume_present = UAC2_DEF_VOLUME_PRESENT; in afunc_alloc_inst()
1929 opts->c_volume_min = UAC2_DEF_MIN_DB; in afunc_alloc_inst()
1930 opts->c_volume_max = UAC2_DEF_MAX_DB; in afunc_alloc_inst()
1931 opts->c_volume_res = UAC2_DEF_RES_DB; in afunc_alloc_inst()
1933 opts->req_number = UAC2_DEF_REQ_NUM; in afunc_alloc_inst()
1934 opts->fb_max = UAC2_DEF_FB_MAX; in afunc_alloc_inst()
1935 return &opts->func_inst; in afunc_alloc_inst()
1941 struct f_uac2_opts *opts; in afunc_free() local
1944 opts = container_of(f->fi, struct f_uac2_opts, func_inst); in afunc_free()
1946 mutex_lock(&opts->lock); in afunc_free()
1947 --opts->refcnt; in afunc_free()
1948 mutex_unlock(&opts->lock); in afunc_free()
1969 struct f_uac2_opts *opts; in afunc_alloc() local
1975 opts = container_of(fi, struct f_uac2_opts, func_inst); in afunc_alloc()
1976 mutex_lock(&opts->lock); in afunc_alloc()
1977 ++opts->refcnt; in afunc_alloc()
1978 mutex_unlock(&opts->lock); in afunc_alloc()