]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/usb/gadget/function/f_ecm.c
Merge remote-tracking branch 'target-updates/for-next'
[karo-tx-linux.git] / drivers / usb / gadget / function / f_ecm.c
index 0106de8e190488c6931e81ecc3c98cc0e973859f..7ad60ee419144fd89b6d109439dcacd99c6a3db7 100644 (file)
@@ -541,24 +541,21 @@ static int ecm_set_alt(struct usb_function *f, unsigned intf, unsigned alt)
                if (alt != 0)
                        goto fail;
 
-               if (ecm->notify->driver_data) {
-                       VDBG(cdev, "reset ecm control %d\n", intf);
-                       usb_ep_disable(ecm->notify);
-               }
+               VDBG(cdev, "reset ecm control %d\n", intf);
+               usb_ep_disable(ecm->notify);
                if (!(ecm->notify->desc)) {
                        VDBG(cdev, "init ecm ctrl %d\n", intf);
                        if (config_ep_by_speed(cdev->gadget, f, ecm->notify))
                                goto fail;
                }
                usb_ep_enable(ecm->notify);
-               ecm->notify->driver_data = ecm;
 
        /* Data interface has two altsettings, 0 and 1 */
        } else if (intf == ecm->data_id) {
                if (alt > 1)
                        goto fail;
 
-               if (ecm->port.in_ep->driver_data) {
+               if (ecm->port.in_ep->enabled) {
                        DBG(cdev, "reset ecm\n");
                        gether_disconnect(&ecm->port);
                }
@@ -618,7 +615,7 @@ static int ecm_get_alt(struct usb_function *f, unsigned intf)
 
        if (intf == ecm->ctrl_id)
                return 0;
-       return ecm->port.in_ep->driver_data ? 1 : 0;
+       return ecm->port.in_ep->enabled ? 1 : 0;
 }
 
 static void ecm_disable(struct usb_function *f)
@@ -628,14 +625,11 @@ static void ecm_disable(struct usb_function *f)
 
        DBG(cdev, "ecm deactivated\n");
 
-       if (ecm->port.in_ep->driver_data)
+       if (ecm->port.in_ep->enabled)
                gether_disconnect(&ecm->port);
 
-       if (ecm->notify->driver_data) {
-               usb_ep_disable(ecm->notify);
-               ecm->notify->driver_data = NULL;
-               ecm->notify->desc = NULL;
-       }
+       usb_ep_disable(ecm->notify);
+       ecm->notify->desc = NULL;
 }
 
 /*-------------------------------------------------------------------------*/
@@ -750,13 +744,11 @@ ecm_bind(struct usb_configuration *c, struct usb_function *f)
        if (!ep)
                goto fail;
        ecm->port.in_ep = ep;
-       ep->driver_data = cdev; /* claim */
 
        ep = usb_ep_autoconfig(cdev->gadget, &fs_ecm_out_desc);
        if (!ep)
                goto fail;
        ecm->port.out_ep = ep;
-       ep->driver_data = cdev; /* claim */
 
        /* NOTE:  a status/notification endpoint is *OPTIONAL* but we
         * don't treat it that way.  It's simpler, and some newer CDC
@@ -766,7 +758,6 @@ ecm_bind(struct usb_configuration *c, struct usb_function *f)
        if (!ep)
                goto fail;
        ecm->notify = ep;
-       ep->driver_data = cdev; /* claim */
 
        status = -ENOMEM;
 
@@ -820,14 +811,6 @@ fail:
                usb_ep_free_request(ecm->notify, ecm->notify_req);
        }
 
-       /* we might as well release our claims on endpoints */
-       if (ecm->notify)
-               ecm->notify->driver_data = NULL;
-       if (ecm->port.out_ep)
-               ecm->port.out_ep->driver_data = NULL;
-       if (ecm->port.in_ep)
-               ecm->port.in_ep->driver_data = NULL;
-
        ERROR(cdev, "%s: can't bind, err %d\n", f->name, status);
 
        return status;