Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Handle all known transfer/pipe errors. | Brian Cully | 2019-10-08 | 1 | -1/+4 |
| | | | | | | | | | | * Remove `PipeErr::Other`. * Add more variants to `PipeErr`. * Integrate `is_transfer_complete` into `dispatch_result` and simplify. * Cache volatile `intflag` on entry to `dispatch_result` to ensure consistent handling. * Clear fail/perr `intflag` bits in `dispatch_result`. | ||||
* | Don't `assume_init` when allocating device descriptor buffer. | Brian Cully | 2019-10-08 | 1 | -3/+5 |
| | | | | Unwrap after `assert` of transfer length. | ||||
* | Log when a driver wants a device. | Brian Cully | 2019-09-24 | 1 | -1/+2 |
| | |||||
* | Reset the USB host driver if an unrecoverable error is found. | Brian Cully | 2019-09-24 | 1 | -3/+18 |
| | |||||
* | Minor refactor. | Brian Cully | 2019-09-15 | 1 | -16/+29 |
| | | | | Remove let bindings and use `Option.map` instead. | ||||
* | Clippy. | Brian Cully | 2019-09-09 | 1 | -6/+6 |
| | |||||
* | Update for starb 0.2 | Brian Cully | 2019-08-17 | 1 | -1/+1 |
| | |||||
* | A bunch of cleanup and fixes. | Brian Cully | 2019-08-10 | 1 | -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 Cully | 2019-08-10 | 1 | -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 Cully | 2019-08-10 | 1 | -0/+1 |
| | |||||
* | Simplify data toggle handling. | Brian Cully | 2019-08-08 | 1 | -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 commit | Brian Cully | 2019-08-04 | 1 | -0/+645 |