1. 06 Jun, 2016 2 commits
    • Robert Sprowson's avatar
      Fix for sending a stale TRB from a pipe that was previously open · 53348b62
      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's avatar
      Stop the endpoint when software's finished with it · 505a8e65
      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
      Version 0.15. Tagged as 'XHCIDriver-0_15'
  2. 03 Jun, 2016 2 commits
  3. 27 Mar, 2016 1 commit
    • Jeffrey Lee's avatar
      Don't pretend to mess with cacheability of pages · 5f6dca10
      Jeffrey Lee authored
        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
        Builds, untested
      Version 0.12. Tagged as 'XHCIDriver-0_12'
  4. 25 Mar, 2016 1 commit
    • Robert Sprowson's avatar
      Fix for stall clear stalling when called from umass · cda26511
      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 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 to remove the old clear code too.
      Version 0.11. Tagged as 'XHCIDriver-0_11'
  5. 06 Dec, 2015 1 commit
    • Robert Sprowson's avatar
      Bump up the declared API number · 50d41438
      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'
  6. 18 Nov, 2015 1 commit
  7. 15 Nov, 2015 2 commits