Lines Matching refs:opts
908 struct f_midi_opts *opts = to_f_midi_opts(item); in midi_attr_release() local
910 usb_put_function_instance(&opts->func_inst); in midi_attr_release()
920 struct f_midi_opts *opts = to_f_midi_opts(item); \
923 mutex_lock(&opts->lock); \
924 result = sprintf(page, "%d\n", opts->name); \
925 mutex_unlock(&opts->lock); \
933 struct f_midi_opts *opts = to_f_midi_opts(item); \
937 mutex_lock(&opts->lock); \
938 if (opts->refcnt) { \
951 opts->name = num; \
955 mutex_unlock(&opts->lock); \
969 struct f_midi_opts *opts = to_f_midi_opts(item); in f_midi_opts_id_show() local
972 mutex_lock(&opts->lock); in f_midi_opts_id_show()
973 if (opts->id) { in f_midi_opts_id_show()
974 result = strlcpy(page, opts->id, PAGE_SIZE); in f_midi_opts_id_show()
980 mutex_unlock(&opts->lock); in f_midi_opts_id_show()
988 struct f_midi_opts *opts = to_f_midi_opts(item); in f_midi_opts_id_store() local
992 mutex_lock(&opts->lock); in f_midi_opts_id_store()
993 if (opts->refcnt) { in f_midi_opts_id_store()
1003 if (opts->id_allocated) in f_midi_opts_id_store()
1004 kfree(opts->id); in f_midi_opts_id_store()
1005 opts->id = c; in f_midi_opts_id_store()
1006 opts->id_allocated = true; in f_midi_opts_id_store()
1009 mutex_unlock(&opts->lock); in f_midi_opts_id_store()
1033 struct f_midi_opts *opts; in f_midi_free_inst() local
1035 opts = container_of(f, struct f_midi_opts, func_inst); in f_midi_free_inst()
1037 if (opts->id_allocated) in f_midi_free_inst()
1038 kfree(opts->id); in f_midi_free_inst()
1040 kfree(opts); in f_midi_free_inst()
1045 struct f_midi_opts *opts; in f_midi_alloc_inst() local
1047 opts = kzalloc(sizeof(*opts), GFP_KERNEL); in f_midi_alloc_inst()
1048 if (!opts) in f_midi_alloc_inst()
1051 mutex_init(&opts->lock); in f_midi_alloc_inst()
1052 opts->func_inst.free_func_inst = f_midi_free_inst; in f_midi_alloc_inst()
1053 opts->index = SNDRV_DEFAULT_IDX1; in f_midi_alloc_inst()
1054 opts->id = SNDRV_DEFAULT_STR1; in f_midi_alloc_inst()
1055 opts->buflen = 256; in f_midi_alloc_inst()
1056 opts->qlen = 32; in f_midi_alloc_inst()
1057 opts->in_ports = 1; in f_midi_alloc_inst()
1058 opts->out_ports = 1; in f_midi_alloc_inst()
1060 config_group_init_type_name(&opts->func_inst.group, "", in f_midi_alloc_inst()
1063 return &opts->func_inst; in f_midi_alloc_inst()
1069 struct f_midi_opts *opts; in f_midi_free() local
1073 opts = container_of(f->fi, struct f_midi_opts, func_inst); in f_midi_free()
1075 mutex_lock(&opts->lock); in f_midi_free()
1076 for (i = opts->in_ports - 1; i >= 0; --i) in f_midi_free()
1079 --opts->refcnt; in f_midi_free()
1080 mutex_unlock(&opts->lock); in f_midi_free()
1105 struct f_midi_opts *opts; in f_midi_alloc() local
1108 opts = container_of(fi, struct f_midi_opts, func_inst); in f_midi_alloc()
1110 mutex_lock(&opts->lock); in f_midi_alloc()
1112 if (opts->in_ports > MAX_PORTS || opts->out_ports > MAX_PORTS) { in f_midi_alloc()
1113 mutex_unlock(&opts->lock); in f_midi_alloc()
1120 mutex_unlock(&opts->lock); in f_midi_alloc()
1124 for (i = 0; i < opts->in_ports; i++) { in f_midi_alloc()
1129 mutex_unlock(&opts->lock); in f_midi_alloc()
1140 midi->id = kstrdup(opts->id, GFP_KERNEL); in f_midi_alloc()
1141 if (opts->id && !midi->id) { in f_midi_alloc()
1143 mutex_unlock(&opts->lock); in f_midi_alloc()
1146 midi->in_ports = opts->in_ports; in f_midi_alloc()
1147 midi->out_ports = opts->out_ports; in f_midi_alloc()
1148 midi->index = opts->index; in f_midi_alloc()
1149 midi->buflen = opts->buflen; in f_midi_alloc()
1150 midi->qlen = opts->qlen; in f_midi_alloc()
1151 ++opts->refcnt; in f_midi_alloc()
1152 mutex_unlock(&opts->lock); in f_midi_alloc()