Reduce polling interval for low-speed devices
Fixes #7651, my Logitech gamepad works. Change-Id: Ia3f92ba817576946dabee262a2fd5af8102a109f Reviewed-on: https://review.haiku-os.org/c/haiku/+/2198 Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
This commit is contained in:
parent
78fea2759f
commit
79ded8ca16
@ -2221,11 +2221,16 @@ EHCI::LinkInterruptQueueHead(ehci_qh *queueHead, Pipe *pipe)
|
||||
queueHead->endpoint_caps |= (0xff << EHCI_QH_CAPS_ISM_SHIFT);
|
||||
} else {
|
||||
// As we do not yet support FSTNs to correctly reference low/full
|
||||
// speed interrupt transfers, we simply put them into the 1 interval
|
||||
// speed interrupt transfers, we simply put them into the 1 or 8 interval
|
||||
// queue. This way we ensure that we reach them on every micro frame
|
||||
// and can do the corresponding start/complete split transactions.
|
||||
// ToDo: use FSTNs to correctly link non high speed interrupt transfers
|
||||
interval = 1;
|
||||
if (pipe->Speed() == USB_SPEED_LOWSPEED) {
|
||||
// Low speed devices can't be polled faster than 8ms, so just use
|
||||
// that.
|
||||
interval = 4;
|
||||
} else
|
||||
interval = 1;
|
||||
|
||||
// For now we also force start splits to be in micro frame 0 and
|
||||
// complete splits to be in micro frame 2, 3 and 4.
|
||||
|
Loading…
Reference in New Issue
Block a user