]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/usb/gadget/f_phonet.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/writeback
[karo-tx-linux.git] / drivers / usb / gadget / f_phonet.c
index f22fc685ddfd06464689b05b6be200e87358e0c9..8f8d3f6cd89edf22fb9d96a67f89bc3fb56b0d5f 100644 (file)
@@ -428,17 +428,16 @@ static int pn_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
                spin_lock(&port->lock);
                __pn_reset(f);
                if (alt == 1) {
-                       struct usb_endpoint_descriptor *out, *in;
                        int i;
 
-                       out = ep_choose(gadget,
-                                       &pn_hs_sink_desc,
-                                       &pn_fs_sink_desc);
-                       in = ep_choose(gadget,
-                                       &pn_hs_source_desc,
-                                       &pn_fs_source_desc);
-                       usb_ep_enable(fp->out_ep, out);
-                       usb_ep_enable(fp->in_ep, in);
+                       if (config_ep_by_speed(gadget, f, fp->in_ep) ||
+                           config_ep_by_speed(gadget, f, fp->out_ep)) {
+                               fp->in_ep->desc = NULL;
+                               fp->out_ep->desc = NULL;
+                               return -EINVAL;
+                       }
+                       usb_ep_enable(fp->out_ep);
+                       usb_ep_enable(fp->in_ep);
 
                        port->usb = fp;
                        fp->out_ep->driver_data = fp;