aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* Minor refactor.Brian Cully2019-09-151-16/+29
| | | | Remove let bindings and use `Option.map` instead.
* Clippy.Brian Cully2019-09-091-6/+6
|
* Update for starb 0.2Brian Cully2019-08-171-1/+1
|
* A bunch of cleanup and fixes.Brian Cully2019-08-101-61/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simplify the code a bunch to reduce it to states we actually care about. This will now probe my Logitech G105, NIZ Plum 85EC, and Keyboard.io Model 01. * Don't listen for wakeup interrupts. Only listen for device connection and disconnection, which wakeups sometimes mean. * Remove the SETTLE_DELAY stuff on device connection, as this appears to be handled in hardware, and prevents over-delay which was causing the Model 01 to reset, since it wasn't getting a SOF in time. * Set initial max packet size for address 0 endpoint 0 based on whether the connection is Full Speed or Low Speed. * Remove all intflag checks from USB handler that we don't explicitly set up. * Always listen dor dconn/ddisc in handler. Since we're using a ring buffer for event storage, we shouldn't miss these and always handle them in order. * Don't freeze pipes on errors. Let the hardware do it. * Don't retransmit packets on errors, just keep polling hardware. * Move trfail check to the end, since it's either dependent on previous, more specific checks, or it's just a NAK (but, for some reason, not ERRORFLOW). * Add `modify` method to control pipe register.
* Use ring buffer for USB events.Brian Cully2019-08-101-56/+24
| | | | | Get rid of the static mut that can drop intermediate events and cause innumerable race conditions.
* Remove device from driver on error.Brian Cully2019-08-101-0/+1
|
* Simplify data toggle handling.Brian Cully2019-08-081-0/+2
| | | | | Only use the data toggle from hardware if we get a data toggle error. Otherwise, use computed toggle values based on endpoint.
* Initial commitBrian Cully2019-08-041-0/+645