|
@@ -550,9 +550,6 @@ qh_completions (struct ehci_hcd *ehci, struct ehci_qh *qh)
|
|
|
|
|
|
/*-------------------------------------------------------------------------*/
|
|
|
|
|
|
-// ... and packet size, for any kind of endpoint descriptor
|
|
|
-#define max_packet(wMaxPacketSize) ((wMaxPacketSize) & 0x07ff)
|
|
|
-
|
|
|
/*
|
|
|
* reverse of qh_urb_transaction: free a list of TDs.
|
|
|
* used for cleanup after errors, before HC sees an URB's TDs.
|
|
@@ -649,7 +646,7 @@ qh_urb_transaction (
|
|
|
token |= (1 /* "in" */ << 8);
|
|
|
/* else it's already initted to "out" pid (0 << 8) */
|
|
|
|
|
|
- maxpacket = max_packet(usb_maxpacket(urb->dev, urb->pipe, !is_input));
|
|
|
+ maxpacket = usb_maxpacket(urb->dev, urb->pipe, !is_input);
|
|
|
|
|
|
/*
|
|
|
* buffer gets wrapped in one or more qtds;
|
|
@@ -788,14 +785,14 @@ qh_make (
|
|
|
is_input = usb_pipein (urb->pipe);
|
|
|
type = usb_pipetype (urb->pipe);
|
|
|
ep = usb_pipe_endpoint (urb->dev, urb->pipe);
|
|
|
- maxp = usb_maxpacket (urb->dev, urb->pipe, !is_input);
|
|
|
+ maxp = usb_endpoint_maxp (&ep->desc);
|
|
|
mult = usb_endpoint_maxp_mult (&ep->desc);
|
|
|
|
|
|
/* 1024 byte maxpacket is a hardware ceiling. High bandwidth
|
|
|
* acts like up to 3KB, but is built from smaller packets.
|
|
|
*/
|
|
|
- if (max_packet(maxp) > 1024) {
|
|
|
- ehci_dbg(ehci, "bogus qh maxpacket %d\n", max_packet(maxp));
|
|
|
+ if (maxp > 1024) {
|
|
|
+ ehci_dbg(ehci, "bogus qh maxpacket %d\n", maxp);
|
|
|
goto done;
|
|
|
}
|
|
|
|
|
@@ -811,8 +808,7 @@ qh_make (
|
|
|
unsigned tmp;
|
|
|
|
|
|
qh->ps.usecs = NS_TO_US(usb_calc_bus_time(USB_SPEED_HIGH,
|
|
|
- is_input, 0,
|
|
|
- mult * max_packet(maxp)));
|
|
|
+ is_input, 0, mult * maxp));
|
|
|
qh->ps.phase = NO_FRAME;
|
|
|
|
|
|
if (urb->dev->speed == USB_SPEED_HIGH) {
|
|
@@ -856,7 +852,7 @@ qh_make (
|
|
|
think_time = tt ? tt->think_time : 0;
|
|
|
qh->ps.tt_usecs = NS_TO_US(think_time +
|
|
|
usb_calc_bus_time (urb->dev->speed,
|
|
|
- is_input, 0, max_packet (maxp)));
|
|
|
+ is_input, 0, maxp));
|
|
|
if (urb->interval > ehci->periodic_size)
|
|
|
urb->interval = ehci->periodic_size;
|
|
|
qh->ps.period = urb->interval;
|
|
@@ -927,10 +923,10 @@ qh_make (
|
|
|
* to help them do so. So now people expect to use
|
|
|
* such nonconformant devices with Linux too; sigh.
|
|
|
*/
|
|
|
- info1 |= max_packet(maxp) << 16;
|
|
|
+ info1 |= maxp << 16;
|
|
|
info2 |= (EHCI_TUNE_MULT_HS << 30);
|
|
|
} else { /* PIPE_INTERRUPT */
|
|
|
- info1 |= max_packet (maxp) << 16;
|
|
|
+ info1 |= maxp << 16;
|
|
|
info2 |= mult << 30;
|
|
|
}
|
|
|
break;
|
|
@@ -1223,7 +1219,7 @@ static int submit_single_step_set_feature(
|
|
|
|
|
|
token |= (1 /* "in" */ << 8); /*This is IN stage*/
|
|
|
|
|
|
- maxpacket = max_packet(usb_maxpacket(urb->dev, urb->pipe, 0));
|
|
|
+ maxpacket = usb_maxpacket(urb->dev, urb->pipe, 0);
|
|
|
|
|
|
qtd_fill(ehci, qtd, buf, len, token, maxpacket);
|
|
|
|