- 12 Sep, 2020 1 commit
-
-
Robert Sprowson authored
Ask PCI manager if there are any XHCI controllers to attach to, then continue to HAL described ones once they're all done. Similarly ask around for the PCI root hub name. xhci.c: Root hub name now in a RAM variable. Workaround for DMA controller problem with VL805 if the array of structure pointers is only 8 byte aligned. xhcimodule.c/h: Do 2 pass discovery, PCI first, then HAL descriptors. Speed up interrupt despatch a bit by calling the HAL's enable/disable directly rather than via _swix(OS_Hardware). Explicitly clear the interrupt too for the case where it's latched in the PCI peripheral. Version 0.30. Tagged as 'XHCIDriver-0_30'
-
- 04 Jul, 2020 2 commits
-
-
Robert Sprowson authored
The ordering of interrupts would sometimes mean the xfer was finished with while the timeout function was waiting to run, leading to an attempt to pass an empty queue (xfer->pipe->queue) to USBDriver via USBDriver_TransferComplete. This would lead to a NULL pointer read when in usbdi.c when it looked at the queue contents. Adopt the fix from NetBSD xhci.c revision 1.96, so only do a timeout if the xfer wasn is progress. Version 0.29. Tagged as 'XHCIDriver-0_29'
-
Robert Sprowson authored
The prototype for vtophys returns an unsigned value, update this driver to match the port header file from USBDriver-1_31.
-
- 06 Mar, 2020 5 commits
-
-
Robert Sprowson authored
xhci.c: From NetBSD 1.113. Version 0.28. Tagged as 'XHCIDriver-0_28'
-
Robert Sprowson authored
xhci.c: From NetBSD 1.107.
-
Robert Sprowson authored
xhci.c: From NetBSD 1.71.
-
Robert Sprowson authored
xhci.c: revision 1.64 (Byte swap the address in xhci_new_device appropriately) xhci.c: revision 1.65 (Put Link TRB always at the end of ring) xhci.c: revision 1.66 (Suppress stopping-endpoint in xhci_close_pipe if the endpoint is already stopped)
-
Robert Sprowson authored
Don't apply an offset if the flags tell us not to, the offset was a quirk of HALs which gave the base of a vendor specific wrapper block rather than the XHCI standard registers. Requires Kernel-6_34 for the flag definition.
-
- 02 Jun, 2018 1 commit
-
-
Robert Sprowson authored
Otherwise subsequent instantiations get an error because the Messages file is already there. Version 0.27. Tagged as 'XHCIDriver-0_27'
-
- 29 Mar, 2018 1 commit
-
-
Robert Sprowson authored
When an endpoint stalls, make sure the xfer's timeout is cancelled before setting up the background clear operation, otherwise the stall is cleared and a few seconds later an attempt is made to work with the (stale, or possibly even reused) xfer struct in xhci_timeout(). Merged from NetBSD revision 1.28.2.74. Version 0.26. Tagged as 'XHCIDriver-0_26'
-
- 22 Feb, 2018 1 commit
-
-
Robert Sprowson authored
The context setup code had misinterpreted the XHCI spec's wording when working out the TT hub slot/TT port number; they should refer to the hub where the high speed hub is, not the adjacent hub. This caused problems with some older KVMs (which are typically full speed, and often have low speed keyboard or mice connected). USBDriver would try to get the HID descriptors but actually sent garble to the device at the wrong speed. From NetBSD revision 1.83, and NetBSD PR/52791. Fixes Elesar ticket 80E-056-86AB5, where a Trendnet TK-409 caused a hang at power up. Version 0.25. Tagged as 'XHCIDriver-0_25'
-
- 27 Jan, 2018 1 commit
-
-
ROOL authored
Detail: Ensure the returned status is defined if USBDriver_InsertTransfer fails (because USBDriver has gone). See similar in DWCDriver-0_34. Version 0.24. Tagged as 'XHCIDriver-0_24'
-
- 08 Oct, 2017 1 commit
-
-
Robert Sprowson authored
The file's there, just looking somewhere else. Retagged as XHCIDriver-0_23.
-
- 07 Oct, 2017 1 commit
-
-
ROOL authored
Detail: Duplicate type declaration for device_t, now in usb_port.h. Admin: Requires USBDriver-1_23 for the corresponding usb_port.h. Version 0.23. Tagged as 'XHCIDriver-0_23'
-
- 19 Sep, 2017 1 commit
-
-
ROOL authored
Detail: Since the 'c' file is a local copy, host the 'h' file too. Admin: Submission for USB bounty. Retagged. Version 0.22. Not tagged
-
- 19 Aug, 2017 1 commit
-
-
ROOL authored
Detail: Use those in C:USB rather than reaching inside the adjacent USBDriver. Admin: Requires USBDriver-1_21. Version 0.22. Tagged as 'XHCIDriver-0_22'
-
- 15 Jul, 2017 1 commit
-
-
ROOL authored
Admin: Reach into USBDriver rather than NetBSD. Version 0.21. Tagged as 'XHCIDriver-0_21'
-
- 13 Jul, 2017 2 commits
-
-
Robert Sprowson authored
xhci.c: From NetBSD 1.67. Version 0.20. Tagged as 'XHCIDriver-0_20'
-
Robert Sprowson authored
xhci.c: Merge changes from NetBSD 1.28.2.51; previously timeouts were only applied to control transfers and were cancelled post transfer complete, now all transfer types are covered and are called prior to usbd_transfer_complete() being called. glue.c: More faithfully implement callout_reset(). The spec for this function is supposed to extend a callout for ones that are already running, but since the callx library ultimately uses OS_CallAfter what actually happened was two callafters were scheduled. This caused a NULL pointer exception if USBDriver cancelled a transaction before the timeout completed (because the cancel caused a 2nd OS_CallAfter to be scheduled, but the cancel caused usbd_transfer_complete() to consume then free the xfer, then the 2nd OS_CallAfter fired and passed a free'd list to usbd_transfer_complete()). Also removed redundant headers usb_mem.h and usb_quirks.h. Tested over 3 weeks on a Titanium (waiting for the right sequence of events to cause 2 OS_CallAfters to trigger took several days each!). Version 0.19. Tagged as 'XHCIDriver-0_19'
-
- 30 Jun, 2017 1 commit
-
-
Robert Sprowson authored
Implement the 'todo' note to use RTSupport instead of a callback. This means if the OS is stuck somewhere in SVC mode and no callbacks are happening the pipe is aborted, plus the state is held in the xfer struct rather than a single shared variable. Version 0.18. Tagged as 'XHCIDriver-0_18'
-
- 18 Dec, 2016 2 commits
-
-
Robert Sprowson authored
The addition of min() macro to usb_port.h in NetBSD-1_18 causes the same name function here to no longer compile. Version 0.17. Tagged as 'XHCIDriver-0_17'
-
Robert Sprowson authored
The addition of min() macro to usb_port.h in NetBSD-1_18 causes the same name function here to no longer compile. Version 0.17. Tagged as 'XHCIDriver-0_17'
-
- 10 Dec, 2016 1 commit
-
-
ROOL authored
Admin: Requires NetBSD-1_17
-
- 06 Jun, 2016 2 commits
-
-
Robert Sprowson authored
Performing an open/out/close set of operations leaves the TRBs from the output step in the transfer ring for that endpoint. Subsequently re-opening the same endpoint a second time would start appending new TRBs on the end of the ring, but as the hardware's dequeue pointer gets reset to 0 all the old TRBs (with stale pointers to data) would get repeated. Now, when an endpoint is configured (and hence the hardware's dequeue pointer set) the shadow copy in RAM is also cleared. Since this procedure is also needed during slot initialisation and stall clear, make it a function too. Fixes problem with 1st print job from Printer Manager being good, and the 2nd print job being bad due to bits of the previous page being jumbled up in the data stream. Also fixes problem with TWAIN scanner failing to complete a scan, for the same reason. Endpoints that are only ever opened, such as mass storage devices, were not affected as the hardware's dequeue pointer always matched the software's copy. From NetBSD revision 1.56, ref http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=51202. Version 0.16. Tagged as 'XHCIDriver-0_16'
-
Robert Sprowson authored
Tell the controller when a pipe is closed, so it doesn't need to schedule time to look at endpoints we're not using any more. Also guards against packets arriving which USBDriver isn't expecting to receive. From NetBSD revision 1.28.2.19. Version 0.15. Tagged as 'XHCIDriver-0_15'
-
- 03 Jun, 2016 2 commits
-
-
Robert Sprowson authored
For an N entry ring, the 0th TRB (which is written last, to avoid some controller quirks) is written to RAM but the N+1th is what gets synced - should sync the 0th. From NetBSD revision 1.47, ref http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=51199 Version 0.14. Tagged as 'XHCIDriver-0_14'
-
Robert Sprowson authored
xhci.c: If a device babbles (sends more bytes than were requested of it) make sure this completion event code is caught, otherwise USB_TransferComplete is called with potentially bad data. From NetBSD revision 1.28.2.19. glue.c: OS_Memory page numbers are just numbers, not pointers. Version 0.13. Tagged as 'XHCIDriver-0_13'
-
- 27 Mar, 2016 1 commit
-
-
Jeffrey Lee authored
Detail: c/glue - Fix vtophys requesting that pages are made uncacheable. They're already uncacheable (all allocated via PCI_RAMAlloc), and once we're done with the pages we never do a 'make cacheable' call to balance it out Admin: Builds, untested Version 0.12. Tagged as 'XHCIDriver-0_12'
-
- 25 Mar, 2016 1 commit
-
-
Robert Sprowson authored
Since SCSISoftUSB relies on devices stalling (rather than doing a test unit ready), stalls occur when a card reader with no card present is queried. The port of umass ends up trying to add something to the control transfer queue, but enters with interrupts disabled, so the clear endpoint stall just times out having not done anything (other callers have interrupts enabled so do clear the stall). Apply change of policy that NetBSD made in revision 1.28.2.19 where the clear endpoint stall is cleared asynchronously rather than being left around until the next transfer is queued. Since we don't have threads on RISC OS, and callbacks wouldn't happen either, we schedule a one shot RTSupport to trigger the clear at CBAI level. Apply change from NetBSD 1.28.2.37 to remove the old clear code too. Version 0.11. Tagged as 'XHCIDriver-0_11'
-
- 06 Dec, 2015 1 commit
-
-
Robert Sprowson authored
During the submission lag NetBSD-1_08 has API version 0.80 but this HC was only declaring 0.76. Version 0.10. Tagged as 'XHCIDriver-0_10'
-
- 18 Nov, 2015 1 commit
-
-
Robert Sprowson authored
Copy of the change in NetBSD-1_09. Version 0.09. Tagged as 'XHCIDriver-0_09'
-
- 15 Nov, 2015 2 commits