1. 30 4月, 2019 1 次提交
  2. 18 12月, 2018 2 次提交
    • B
      usb: musb: dsps: fix runtime pm for peripheral mode · 54578ee8
      Bin Liu 提交于
      Since the runtime PM support was added in musb, dsps relies on the timer
      calling otg_timer() to activate the usb subsystem. However the driver
      doesn't enable the timer for peripheral port, then the peripheral port is
      unable to be enumerated by a host if the other usb port is disabled or in
      peripheral mode too.
      
      So let's start the timer for peripheral port too.
      
      Fixes: ea2f35c0 ("usb: musb: Fix sleeping function called from invalid context for hdrc glue")
      Acked-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NBin Liu <b-liu@ti.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      54578ee8
    • B
      usb: musb: dsps: fix otg state machine · 6010abf2
      Bin Liu 提交于
      Due to lack of ID pin interrupt event on AM335x devices, the musb dsps
      driver uses polling to detect usb device attach for dual-role port.
      
      But in the case if a micro-A cable adapter is attached without a USB device
      attached to the cable, the musb state machine gets stuck in a_wait_vrise
      state waiting for the MUSB_CONNECT interrupt which won't happen due to the
      usb device is not attached. The state is stuck in a_wait_vrise even after
      the micro-A cable is detached, which could cause VBUS retention if then the
      dual-role port is attached to a host port.
      
      To fix the problem, make a_wait_vrise as a transient state, then move the
      state to either a_wait_bcon for host port or a_idle state for dual-role
      port, if no usb device is attached to the port.
      Signed-off-by: NBin Liu <b-liu@ti.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6010abf2
  3. 20 9月, 2018 1 次提交
  4. 03 7月, 2018 1 次提交
  5. 31 5月, 2018 1 次提交
  6. 22 5月, 2018 4 次提交
  7. 23 4月, 2018 1 次提交
  8. 07 11月, 2017 1 次提交
    • G
      USB: musb: Remove redundant license text · 21b650c2
      Greg Kroah-Hartman 提交于
      Now that the SPDX tag is in all USB files, that identifies the license
      in a specific and legally-defined manner.  So the extra GPL text wording
      can be removed as it is no longer needed at all.
      
      This is done on a quest to remove the 700+ different ways that files in
      the kernel describe the GPL license text.  And there's unneeded stuff
      like the address (sometimes incorrect) for the FSF which is never
      needed.
      
      No copyright headers or other non-license-description text was removed.
      
      Cc: Maxime Ripard <maxime.ripard@free-electrons.com>
      Cc: Chen-Yu Tsai <wens@csie.org>
      Acked-by: NBin Liu <b-liu@ti.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      21b650c2
  9. 04 11月, 2017 1 次提交
  10. 01 11月, 2017 2 次提交
  11. 28 8月, 2017 1 次提交
    • J
      USB: musb: dsps: add explicit runtime resume at suspend · 706d61b2
      Johan Hovold 提交于
      The musb_dsps driver is special in that the parent (glue) device's
      driver is accessing registers mapped by the child. The clock is however
      shared and is managed by the grandparent device.
      
      Since commit 869c5978 ("usb: musb: dsps: add support for suspend and
      resume") the dsps driver has been accessing these registers as part of
      suspend and resume.
      
      The parent driver obviously cannot runtime resume the child during
      system suspend and is currently relying on the fact that the child will
      be RPM_ACTIVE throughout suspend. The suspend implementation also makes
      sure to check that the child is indeed present (and hence the clock
      enabled) before accessing the registers.
      
      Let's add an explicit runtime resume of the glue device itself to enable
      the clock before doing the register accesses in case these assumptions ever
      change (i.e. if the child is left runtime suspended).
      
      Note that the glue-timer cancellation is moved after the child-presence
      check to keep error handling simple. This should be fine as the timer is
      not setup until the controller is being registered and at that time
      glue->musb and its driver data have already been initialised.
      
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: Daniel Mack <zonque@gmail.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Signed-off-by: NJohan Hovold <johan@kernel.org>
      Signed-off-by: NBin Liu <b-liu@ti.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      706d61b2
  12. 27 5月, 2017 1 次提交
  13. 14 3月, 2017 1 次提交
  14. 09 2月, 2017 1 次提交
  15. 03 2月, 2017 4 次提交
  16. 06 1月, 2017 1 次提交
    • B
      usb: musb: dsps: implement clear_ep_rxintr() callback · c48400ba
      Bin Liu 提交于
      During dma teardown for dequque urb, if musb load is high, musb might
      generate bogus rx ep interrupt even when the rx fifo is flushed. In such
      case any of the follow log messages could happen.
      
          musb_host_rx 1853: BOGUS RX2 ready, csr 0000, count 0
      
          musb_host_rx 1936: RX3 dma busy, csr 2020
      
      As mentioned in the current inline comment, clearing ep interrupt in the
      teardown path avoids the bogus interrupt, so implement clear_ep_rxintr()
      callback.
      
      This bug seems to be existing since the initial driver for musb support,
      but I only validated the fix back to v4.1, so only cc stable for v4.1+.
      
      cc: stable@vger.kernel.org # 4.1+
      Signed-off-by: NBin Liu <b-liu@ti.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c48400ba
  17. 17 11月, 2016 2 次提交
  18. 13 9月, 2016 2 次提交
  19. 17 7月, 2016 1 次提交
  20. 27 9月, 2015 3 次提交
  21. 22 9月, 2015 1 次提交
  22. 06 8月, 2015 1 次提交
  23. 05 8月, 2015 1 次提交
  24. 08 5月, 2015 2 次提交
  25. 04 4月, 2015 1 次提交
  26. 25 3月, 2015 1 次提交
    • T
      usb: musb: Fix fifo reads for dm816x with musb_dsps · 3e457371
      Tony Lindgren 提交于
      Looks like dm81xx can only do 32-bit fifo reads like am35x. Let's set
      up musb-dsps with a custom read_fifo function based on the compatible
      flag.
      
      Otherwise we can get the following errors when starting dhclient on a
      asix USB Ethernet adapter:
      
      asix 2-1:1.0 eth2: asix_rx_fixup() Bad Header Length 0xffff003c, offset 4
      
      While at it, let's also remove pointless cast of the driver data.
      
      Cc: Bin Liu <binmlist@gmail.com>
      Cc: Brian Hutchinson <b.hutchman@gmail.com>
      Cc: George Cherian <george.cherian@ti.com>
      Cc: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      3e457371
  27. 11 3月, 2015 1 次提交