1. 28 Aug, 2017 3 commits
  2. 25 Aug, 2017 1 commit
  3. 24 Aug, 2017 2 commits
  4. 22 Aug, 2017 15 commits
  5. 20 Aug, 2017 13 commits
  6. 18 Aug, 2017 3 commits
  7. 17 Aug, 2017 1 commit
  8. 16 Aug, 2017 2 commits
    • Mathias Nyman's avatar
      xhci: rework bus_resume and check ports are suspended before resuming them. · a85c0f8d
      Mathias Nyman authored
      bus_resume() tried to resume the same ports the bus_suspend()
      suspeded. This caused PLC timeouts in case a suspended device disconnected
      and was not in a resumable state at bus_resume().
      
      Add a check to make sure the link state is either U3 or resuming
      before actually resuming the link.
      
      At the same time do some other changes such as make sure we remove
      wake on connect/disconnect/overcurrent also for the resuming ports,
      and avoid extra portsc port register writes.
      
      This improves resume time with 10ms in those PLC timeout cases where
      devices disconnect at suspend/resume cycle.
      Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a85c0f8d
    • Mathias Nyman's avatar
      usb: Increase root hub reset signaling time to prevent retry · 74072bae
      Mathias Nyman authored
      Save 80ms device enumeration time by increasing root hub port reset time
      
      The 50ms reset signaling time is not enough for most root hub ports.
      Increasing the reset time to 60ms allows host controllers to finish port
      reset and removes a retry causing an extra 50ms delay.
      
      The USB 2 specification requires "at least 50ms" for driving root
      port reset. The current msleep is exactly 50ms which may not be
      enough if there are any delays between writing the reset bit to host
      controller portsc register and phy actually driving reset.
      
      On Haswell, Skylake and Kabylake xHC port reset took in average 52-59ms
      
      The 80ms improvement comes from (40ms * 2 port resets) save at enumeration
      for each device connected to a root hub port.
      
      more details about root port reset in USB2 section 7.1.7.5:.
      "Software must ensure that resets issued to the root ports drive reset
      long enough to overwhelm any concurrent resume attempts by downstream
      devices. It is required that resets from root ports have a duration of
      at least 50 ms (TDRSTR).
      Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
      Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      74072bae