Commit f6624ca7 authored by Johan Hovold's avatar Johan Hovold Committed by Greg Kroah-Hartman

greybus: es2: separate stopping and deallocating urbs

Separate stopping and deallocating our in-urbs.

This will facilitate implementing proper host-device life-time management.
Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 8dfd3fe5
...@@ -238,6 +238,18 @@ static int es2_cport_in_enable(struct es2_ap_dev *es2, ...@@ -238,6 +238,18 @@ static int es2_cport_in_enable(struct es2_ap_dev *es2,
return ret; return ret;
} }
static void es2_cport_in_disable(struct es2_ap_dev *es2,
struct es2_cport_in *cport_in)
{
struct urb *urb;
int i;
for (i = 0; i < NUM_CPORT_IN_URB; ++i) {
urb = cport_in->urb[i];
usb_kill_urb(urb);
}
}
static struct urb *next_free_urb(struct es2_ap_dev *es2, gfp_t gfp_mask) static struct urb *next_free_urb(struct es2_ap_dev *es2, gfp_t gfp_mask)
{ {
struct urb *urb = NULL; struct urb *urb = NULL;
...@@ -547,6 +559,9 @@ static void ap_disconnect(struct usb_interface *interface) ...@@ -547,6 +559,9 @@ static void ap_disconnect(struct usb_interface *interface)
if (!es2) if (!es2)
return; return;
for (i = 0; i < NUM_BULKS; ++i)
es2_cport_in_disable(es2, &es2->cport_in[i]);
usb_log_disable(es2); usb_log_disable(es2);
/* Tear down everything! */ /* Tear down everything! */
...@@ -569,7 +584,6 @@ static void ap_disconnect(struct usb_interface *interface) ...@@ -569,7 +584,6 @@ static void ap_disconnect(struct usb_interface *interface)
if (!urb) if (!urb)
break; break;
usb_kill_urb(urb);
usb_free_urb(urb); usb_free_urb(urb);
kfree(cport_in->buffer[i]); kfree(cport_in->buffer[i]);
cport_in->buffer[i] = NULL; cport_in->buffer[i] = NULL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment