Skip to content
  1. Oct 25, 2013
  2. Oct 24, 2013
    • Greg Kroah-Hartman's avatar
      Merge tag 'usb-for-v3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next · 5328f35b
      Greg Kroah-Hartman authored
      
      
      Felipe writes:
      
      usb: patches for v3.13
      
      Final conversions to configfs for mass storage, acm_ms, and
      multi gadgets.
      
      MUSB should now work out of the box on AM335x-based boards
      (beagle bone white and black) with DMA thanks to Sebastian's
      work.
      
      We can now enable VERBOSE_DEBUG on builds of drivers/usb/gadget/
      by selecting CONFIG_USB_GADGET_VERBOSE.
      
      s3c-hsotg got quite a few non-critical fixes but also learned
      a few new tricks (isochronous transfers, multi count support).
      
      The Marvel USB3 Controller driver got a memory leak fix.
      
      devm_usb_get_phy() learned not to return NULL, ever.
      
      Other than these patches, we have the usual set of cleanups
      ranging from removal of unnecessary *_set_drvdata() to using
      SIMPLE_DEV_PM_OPS.
      
      Signed-of-by: default avatarFelipe Balbi <balbi@ti.com>
      5328f35b
  3. Oct 20, 2013
  4. Oct 19, 2013
  5. Oct 18, 2013
  6. Oct 17, 2013
    • Sebastian Andrzej Siewior's avatar
      usb: musb: dsps: run the timer only on OTG systems · 24616eb6
      Sebastian Andrzej Siewior authored
      
      
      I introduced this check here because it looked wrong in HOST only
      configurions. The timer would remove that session bit and will never
      come back and so there would not be another session.
      Now that I played with OTG for a while I belive this workaround is
      only required for the OTG mode because we have to end the session and
      then we have to try to start manually.
      Therefore, this patch limits this timer to the OTG only port mode so we
      don't need to poll around in device only mode.
      
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      24616eb6
    • Sebastian Andrzej Siewior's avatar
      usb: musb: dsps: redo the otg timer · 0f901c98
      Sebastian Andrzej Siewior authored
      
      
      According to the comments, we rely on the OTG timer because the core
      does not expose some important OTG details. So far this is all I
      know. After playing with OTG I stumbled over a problem:
      musb is recognized as a B-device without a problem. Whenever a cable is
      plugged, the VBUS rises, musb recognizes this as a starting session,
      sets the MUSB_DEVCTL_SESSION bit by itself and a RESET interrupt occurs,
      the session starts. Good.
      After a disconnect, the timer is started and re-starts itself because
      it remains in B_IDLE with the BDEVICE set. I didn't figure the the
      reason or the need for it. Nothing changes here except for OTG state
      from B to A device if the BDEVICE bit disappears. This doesn't make much
      sense to me because nothing happens after this. _IF_ we receive an
      interrupt before the state change then we may act on wrong condition.
      Plugging a B-device (and letting MUSB act as host) doesn't work here.
      The reason seems to be that the MUSB tries to start a session, it fails
      and then it removes the bit. So we never start as a host.
      
      This patch sets the MUSB_DEVCTL_SESSION bit in the IDLE state so musb
      can try to establish a session as host. After the bit is set, musb tries
      to start a session and if it fails it clears the bit. Therefore it will
      try over and over again until a session either as host or as device is
      established.
      
      The readout of the MUSB_DEVCTL register after the removal the
      MUSB_DEVCTL_SESSION (in A_WAIT_BCON) has been removed because it did not
      contain the BDEVICE bit set (in the second read) leading to A_IDLE. After
      plugging a host musb assumed that it is also a host and complained about
      a missing reset. However a third read of the register has has the BDEVICE
      bit set so it seems that it is not stable.
      This mostly what da8xx.c is doing except that we set the timer also
      after A_WAIT_BCON so the session bit can be triggered.
      
      Whit this change I was able to keep am335x-evm in OTG mode and plug in
      either a HOST or a DEVICE and in a random order and the device was
      recognized.
      
      Cc: stable@vger.kernel.org # v3.11
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      0f901c98