|
@@ -849,9 +849,10 @@ qh_make (
|
|
|
* But interval 1 scheduling is simpler, and
|
|
|
* includes high bandwidth.
|
|
|
*/
|
|
|
- dbg ("intr period %d uframes, NYET!",
|
|
|
- urb->interval);
|
|
|
- goto done;
|
|
|
+ urb->interval = 1;
|
|
|
+ } else if (qh->period > ehci->periodic_size) {
|
|
|
+ qh->period = ehci->periodic_size;
|
|
|
+ urb->interval = qh->period << 3;
|
|
|
}
|
|
|
} else {
|
|
|
int think_time;
|
|
@@ -874,6 +875,10 @@ qh_make (
|
|
|
usb_calc_bus_time (urb->dev->speed,
|
|
|
is_input, 0, max_packet (maxp)));
|
|
|
qh->period = urb->interval;
|
|
|
+ if (qh->period > ehci->periodic_size) {
|
|
|
+ qh->period = ehci->periodic_size;
|
|
|
+ urb->interval = qh->period;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|