Lines Matching refs:opts

910 	struct f_midi_opts *opts = to_f_midi_opts(item);  in midi_attr_release()  local
912 usb_put_function_instance(&opts->func_inst); in midi_attr_release()
922 static ssize_t f_midi_opts_##name##_show(struct f_midi_opts *opts, char *page) \
926 mutex_lock(&opts->lock); \
927 result = sprintf(page, "%d\n", opts->name); \
928 mutex_unlock(&opts->lock); \
933 static ssize_t f_midi_opts_##name##_store(struct f_midi_opts *opts, \
939 mutex_lock(&opts->lock); \
940 if (opts->refcnt) { \
953 opts->name = num; \
957 mutex_unlock(&opts->lock); \
971 static ssize_t f_midi_opts_id_show(struct f_midi_opts *opts, char *page) in f_midi_opts_id_show() argument
975 mutex_lock(&opts->lock); in f_midi_opts_id_show()
976 if (opts->id) { in f_midi_opts_id_show()
977 result = strlcpy(page, opts->id, PAGE_SIZE); in f_midi_opts_id_show()
983 mutex_unlock(&opts->lock); in f_midi_opts_id_show()
988 static ssize_t f_midi_opts_id_store(struct f_midi_opts *opts, in f_midi_opts_id_store() argument
994 mutex_lock(&opts->lock); in f_midi_opts_id_store()
995 if (opts->refcnt) { in f_midi_opts_id_store()
1005 if (opts->id_allocated) in f_midi_opts_id_store()
1006 kfree(opts->id); in f_midi_opts_id_store()
1007 opts->id = c; in f_midi_opts_id_store()
1008 opts->id_allocated = true; in f_midi_opts_id_store()
1011 mutex_unlock(&opts->lock); in f_midi_opts_id_store()
1037 struct f_midi_opts *opts; in f_midi_free_inst() local
1039 opts = container_of(f, struct f_midi_opts, func_inst); in f_midi_free_inst()
1041 if (opts->id_allocated) in f_midi_free_inst()
1042 kfree(opts->id); in f_midi_free_inst()
1044 kfree(opts); in f_midi_free_inst()
1049 struct f_midi_opts *opts; in f_midi_alloc_inst() local
1051 opts = kzalloc(sizeof(*opts), GFP_KERNEL); in f_midi_alloc_inst()
1052 if (!opts) in f_midi_alloc_inst()
1055 mutex_init(&opts->lock); in f_midi_alloc_inst()
1056 opts->func_inst.free_func_inst = f_midi_free_inst; in f_midi_alloc_inst()
1057 opts->index = SNDRV_DEFAULT_IDX1; in f_midi_alloc_inst()
1058 opts->id = SNDRV_DEFAULT_STR1; in f_midi_alloc_inst()
1059 opts->buflen = 256; in f_midi_alloc_inst()
1060 opts->qlen = 32; in f_midi_alloc_inst()
1061 opts->in_ports = 1; in f_midi_alloc_inst()
1062 opts->out_ports = 1; in f_midi_alloc_inst()
1064 config_group_init_type_name(&opts->func_inst.group, "", in f_midi_alloc_inst()
1067 return &opts->func_inst; in f_midi_alloc_inst()
1073 struct f_midi_opts *opts; in f_midi_free() local
1077 opts = container_of(f->fi, struct f_midi_opts, func_inst); in f_midi_free()
1079 mutex_lock(&opts->lock); in f_midi_free()
1080 for (i = opts->in_ports - 1; i >= 0; --i) in f_midi_free()
1083 --opts->refcnt; in f_midi_free()
1084 mutex_unlock(&opts->lock); in f_midi_free()
1109 struct f_midi_opts *opts; in f_midi_alloc() local
1112 opts = container_of(fi, struct f_midi_opts, func_inst); in f_midi_alloc()
1114 mutex_lock(&opts->lock); in f_midi_alloc()
1116 if (opts->in_ports > MAX_PORTS || opts->out_ports > MAX_PORTS) { in f_midi_alloc()
1117 mutex_unlock(&opts->lock); in f_midi_alloc()
1124 mutex_unlock(&opts->lock); in f_midi_alloc()
1128 for (i = 0; i < opts->in_ports; i++) { in f_midi_alloc()
1133 mutex_unlock(&opts->lock); in f_midi_alloc()
1144 midi->id = kstrdup(opts->id, GFP_KERNEL); in f_midi_alloc()
1145 if (opts->id && !midi->id) { in f_midi_alloc()
1147 mutex_unlock(&opts->lock); in f_midi_alloc()
1150 midi->in_ports = opts->in_ports; in f_midi_alloc()
1151 midi->out_ports = opts->out_ports; in f_midi_alloc()
1152 midi->index = opts->index; in f_midi_alloc()
1153 midi->buflen = opts->buflen; in f_midi_alloc()
1154 midi->qlen = opts->qlen; in f_midi_alloc()
1155 ++opts->refcnt; in f_midi_alloc()
1156 mutex_unlock(&opts->lock); in f_midi_alloc()