diff options
author | Andrzej Pietrasiewicz <andrzej.p@samsung.com> | 2014-10-16 07:33:28 -0400 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2014-11-05 14:36:13 -0500 |
commit | 32522a51c7f44a48dc298fce738795dca5c8fcd6 (patch) | |
tree | c5f4c63d2d312f03c1150af713f47e4d34c3ea7b /drivers/usb/gadget | |
parent | b85e9de9e818de0dcbc50b7b4242192eb6194855 (diff) |
usb: gadget: midi: convert to new interface of f_midi
Use the new f_midi interface so that the old can be removed.
Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r-- | drivers/usb/gadget/legacy/Kconfig | 1 | ||||
-rw-r--r-- | drivers/usb/gadget/legacy/gmidi.c | 44 |
2 files changed, 38 insertions, 7 deletions
diff --git a/drivers/usb/gadget/legacy/Kconfig b/drivers/usb/gadget/legacy/Kconfig index 24392d269709..8011b190e679 100644 --- a/drivers/usb/gadget/legacy/Kconfig +++ b/drivers/usb/gadget/legacy/Kconfig | |||
@@ -287,6 +287,7 @@ config USB_MIDI_GADGET | |||
287 | depends on SND | 287 | depends on SND |
288 | select USB_LIBCOMPOSITE | 288 | select USB_LIBCOMPOSITE |
289 | select SND_RAWMIDI | 289 | select SND_RAWMIDI |
290 | select USB_F_MIDI | ||
290 | help | 291 | help |
291 | The MIDI Gadget acts as a USB Audio device, with one MIDI | 292 | The MIDI Gadget acts as a USB Audio device, with one MIDI |
292 | input and one MIDI output. These MIDI jacks appear as | 293 | input and one MIDI output. These MIDI jacks appear as |
diff --git a/drivers/usb/gadget/legacy/gmidi.c b/drivers/usb/gadget/legacy/gmidi.c index f704c5557d19..0d01e467af09 100644 --- a/drivers/usb/gadget/legacy/gmidi.c +++ b/drivers/usb/gadget/legacy/gmidi.c | |||
@@ -37,8 +37,7 @@ | |||
37 | 37 | ||
38 | #include "gadget_chips.h" | 38 | #include "gadget_chips.h" |
39 | 39 | ||
40 | #define USBF_MIDI_INCLUDED | 40 | #include "u_midi.h" |
41 | #include "f_midi.c" | ||
42 | 41 | ||
43 | /*-------------------------------------------------------------------------*/ | 42 | /*-------------------------------------------------------------------------*/ |
44 | 43 | ||
@@ -116,8 +115,13 @@ static struct usb_gadget_strings *dev_strings[] = { | |||
116 | NULL, | 115 | NULL, |
117 | }; | 116 | }; |
118 | 117 | ||
118 | struct usb_function_instance *fi_midi; | ||
119 | struct usb_function *f_midi; | ||
120 | |||
119 | static int __exit midi_unbind(struct usb_composite_dev *dev) | 121 | static int __exit midi_unbind(struct usb_composite_dev *dev) |
120 | { | 122 | { |
123 | usb_put_function(f_midi); | ||
124 | usb_put_function_instance(fi_midi); | ||
121 | return 0; | 125 | return 0; |
122 | } | 126 | } |
123 | 127 | ||
@@ -131,28 +135,54 @@ static struct usb_configuration midi_config = { | |||
131 | 135 | ||
132 | static int __init midi_bind_config(struct usb_configuration *c) | 136 | static int __init midi_bind_config(struct usb_configuration *c) |
133 | { | 137 | { |
134 | return f_midi_bind_config(c, index, id, | 138 | int status; |
135 | in_ports, out_ports, | 139 | |
136 | buflen, qlen); | 140 | f_midi = usb_get_function(fi_midi); |
141 | if (IS_ERR(f_midi)) | ||
142 | return PTR_ERR(f_midi); | ||
143 | |||
144 | status = usb_add_function(c, f_midi); | ||
145 | if (status < 0) { | ||
146 | usb_put_function(f_midi); | ||
147 | return status; | ||
148 | } | ||
149 | |||
150 | return 0; | ||
137 | } | 151 | } |
138 | 152 | ||
139 | static int __init midi_bind(struct usb_composite_dev *cdev) | 153 | static int __init midi_bind(struct usb_composite_dev *cdev) |
140 | { | 154 | { |
155 | struct f_midi_opts *midi_opts; | ||
141 | int status; | 156 | int status; |
142 | 157 | ||
158 | fi_midi = usb_get_function_instance("midi"); | ||
159 | if (IS_ERR(fi_midi)) | ||
160 | return PTR_ERR(fi_midi); | ||
161 | |||
162 | midi_opts = container_of(fi_midi, struct f_midi_opts, func_inst); | ||
163 | midi_opts->index = index; | ||
164 | midi_opts->id = id; | ||
165 | midi_opts->in_ports = in_ports; | ||
166 | midi_opts->out_ports = out_ports; | ||
167 | midi_opts->buflen = buflen; | ||
168 | midi_opts->qlen = qlen; | ||
169 | |||
143 | status = usb_string_ids_tab(cdev, strings_dev); | 170 | status = usb_string_ids_tab(cdev, strings_dev); |
144 | if (status < 0) | 171 | if (status < 0) |
145 | return status; | 172 | goto put; |
146 | device_desc.iManufacturer = strings_dev[USB_GADGET_MANUFACTURER_IDX].id; | 173 | device_desc.iManufacturer = strings_dev[USB_GADGET_MANUFACTURER_IDX].id; |
147 | device_desc.iProduct = strings_dev[USB_GADGET_PRODUCT_IDX].id; | 174 | device_desc.iProduct = strings_dev[USB_GADGET_PRODUCT_IDX].id; |
148 | midi_config.iConfiguration = strings_dev[STRING_DESCRIPTION_IDX].id; | 175 | midi_config.iConfiguration = strings_dev[STRING_DESCRIPTION_IDX].id; |
149 | 176 | ||
150 | status = usb_add_config(cdev, &midi_config, midi_bind_config); | 177 | status = usb_add_config(cdev, &midi_config, midi_bind_config); |
151 | if (status < 0) | 178 | if (status < 0) |
152 | return status; | 179 | goto put; |
153 | usb_composite_overwrite_options(cdev, &coverwrite); | 180 | usb_composite_overwrite_options(cdev, &coverwrite); |
154 | pr_info("%s\n", longname); | 181 | pr_info("%s\n", longname); |
155 | return 0; | 182 | return 0; |
183 | put: | ||
184 | usb_put_function_instance(fi_midi); | ||
185 | return status; | ||
156 | } | 186 | } |
157 | 187 | ||
158 | static __refdata struct usb_composite_driver midi_driver = { | 188 | static __refdata struct usb_composite_driver midi_driver = { |