Loading drivers/usb/gadget/function/f_rmnet.c +30 −7 Original line number Diff line number Diff line Loading @@ -740,6 +740,7 @@ frmnet_set_alt(struct usb_function *f, unsigned intf, unsigned alt) if (ret) { pr_err("%s: usb ep#%s enable failed, err#%d\n", __func__, dev->notify->name, ret); dev->notify->desc = NULL; return ret; } dev->notify->driver_data = dev; Loading @@ -747,12 +748,12 @@ frmnet_set_alt(struct usb_function *f, unsigned intf, unsigned alt) if (!dev->port.in->desc || !dev->port.out->desc) { if (config_ep_by_speed(cdev->gadget, f, dev->port.in) || config_ep_by_speed(cdev->gadget, f, dev->port.out)) { dev->port.in->desc = NULL; dev->port.out->desc = NULL; return -EINVAL; pr_err("%s(): config_ep_by_speed failed.\n", __func__); ret = -EINVAL; goto err_disable_ep; } dev->port.gadget = dev->cdev->gadget; ret = gport_rmnet_connect(dev, intf); } if (dxport == USB_GADGET_XPORT_BAM2BAM_IPA && Loading @@ -760,11 +761,19 @@ frmnet_set_alt(struct usb_function *f, unsigned intf, unsigned alt) if (msm_ep_config(dev->port.in) || msm_ep_config(dev->port.out)) { pr_err("%s: msm_ep_config failed\n", __func__); return -EINVAL; ret = -EINVAL; goto err_disable_ep; } } else } else { pr_debug("Rmnet is being used with non DWC3 core\n"); } ret = gport_rmnet_connect(dev, intf); if (ret) { pr_err("%s(): gport_rmnet_connect fail with err:%d\n", __func__, ret); goto err_unconfig_ep; } atomic_set(&dev->online, 1); Loading @@ -774,6 +783,20 @@ frmnet_set_alt(struct usb_function *f, unsigned intf, unsigned alt) frmnet_ctrl_response_available(dev); return ret; err_unconfig_ep: if (dxport == USB_GADGET_XPORT_BAM2BAM_IPA && gadget_is_dwc3(cdev->gadget)) { msm_ep_unconfig(dev->port.in); msm_ep_unconfig(dev->port.out); } err_disable_ep: dev->port.in->desc = NULL; dev->port.out->desc = NULL; usb_ep_disable(dev->notify); return ret; } static void frmnet_ctrl_response_available(struct f_rmnet *dev) Loading Loading
drivers/usb/gadget/function/f_rmnet.c +30 −7 Original line number Diff line number Diff line Loading @@ -740,6 +740,7 @@ frmnet_set_alt(struct usb_function *f, unsigned intf, unsigned alt) if (ret) { pr_err("%s: usb ep#%s enable failed, err#%d\n", __func__, dev->notify->name, ret); dev->notify->desc = NULL; return ret; } dev->notify->driver_data = dev; Loading @@ -747,12 +748,12 @@ frmnet_set_alt(struct usb_function *f, unsigned intf, unsigned alt) if (!dev->port.in->desc || !dev->port.out->desc) { if (config_ep_by_speed(cdev->gadget, f, dev->port.in) || config_ep_by_speed(cdev->gadget, f, dev->port.out)) { dev->port.in->desc = NULL; dev->port.out->desc = NULL; return -EINVAL; pr_err("%s(): config_ep_by_speed failed.\n", __func__); ret = -EINVAL; goto err_disable_ep; } dev->port.gadget = dev->cdev->gadget; ret = gport_rmnet_connect(dev, intf); } if (dxport == USB_GADGET_XPORT_BAM2BAM_IPA && Loading @@ -760,11 +761,19 @@ frmnet_set_alt(struct usb_function *f, unsigned intf, unsigned alt) if (msm_ep_config(dev->port.in) || msm_ep_config(dev->port.out)) { pr_err("%s: msm_ep_config failed\n", __func__); return -EINVAL; ret = -EINVAL; goto err_disable_ep; } } else } else { pr_debug("Rmnet is being used with non DWC3 core\n"); } ret = gport_rmnet_connect(dev, intf); if (ret) { pr_err("%s(): gport_rmnet_connect fail with err:%d\n", __func__, ret); goto err_unconfig_ep; } atomic_set(&dev->online, 1); Loading @@ -774,6 +783,20 @@ frmnet_set_alt(struct usb_function *f, unsigned intf, unsigned alt) frmnet_ctrl_response_available(dev); return ret; err_unconfig_ep: if (dxport == USB_GADGET_XPORT_BAM2BAM_IPA && gadget_is_dwc3(cdev->gadget)) { msm_ep_unconfig(dev->port.in); msm_ep_unconfig(dev->port.out); } err_disable_ep: dev->port.in->desc = NULL; dev->port.out->desc = NULL; usb_ep_disable(dev->notify); return ret; } static void frmnet_ctrl_response_available(struct f_rmnet *dev) Loading