usb: Set USBEndpoint in usb_packet_setup().

With the separation of the device lookup (via usb_find_device) and
packet processing we can lookup device and endpoint before setting up
the usb packet.  So we can initialize USBPacket->ep early and keep it
valid for the whole lifecycle of the USBPacket.  Also the devaddr and
devep fields are not needed any more.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
Gerd Hoffmann 2012-01-12 13:23:01 +01:00
parent 63095ab54c
commit 079d0b7f1e
19 changed files with 91 additions and 86 deletions

View file

@ -1210,7 +1210,7 @@ static int usb_net_handle_data(USBDevice *dev, USBPacket *p)
switch(p->pid) {
case USB_TOKEN_IN:
switch (p->devep) {
switch (p->ep->nr) {
case 1:
ret = usb_net_handle_statusin(s, p);
break;
@ -1225,7 +1225,7 @@ static int usb_net_handle_data(USBDevice *dev, USBPacket *p)
break;
case USB_TOKEN_OUT:
switch (p->devep) {
switch (p->ep->nr) {
case 2:
ret = usb_net_handle_dataout(s, p);
break;
@ -1243,7 +1243,7 @@ static int usb_net_handle_data(USBDevice *dev, USBPacket *p)
if (ret == USB_RET_STALL)
fprintf(stderr, "usbnet: failed data transaction: "
"pid 0x%x ep 0x%x len 0x%zx\n",
p->pid, p->devep, p->iov.size);
p->pid, p->ep->nr, p->iov.size);
return ret;
}