1. 18 Apr, 2015 1 commit
  2. 14 Apr, 2015 1 commit
  3. 18 Jan, 2015 1 commit
  4. 23 Nov, 2014 1 commit
  5. 19 Nov, 2014 1 commit
  6. 04 Nov, 2014 4 commits
  7. 25 Oct, 2014 2 commits
  8. 06 Oct, 2014 4 commits
  9. 30 Apr, 2014 1 commit
  10. 10 Mar, 2014 2 commits
    • Stephen Warren's avatar
      usb: ehci: fully align interrupt QHs/QTDs · 8165e34b
      Stephen Warren authored
      
      
      These data structures are passed to cache-flushing routines, and hence
      must be conform to both the USB the cache-flusing alignment requirements.
      That means aligning to USB_DMA_MINALIGN. This is important on systems
      where cache lines are >32 bytes.
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      8165e34b
    • Stephen Warren's avatar
      ush: ehci: initialize altnext pointers in QH · 2456b97f
      Stephen Warren authored
      
      
      Section 4.10.2 "Advance Queue" of ehci-specification-for-usb.pdf
      specifies how an EHCI controller loads a new QTD for processing if the
      QH is not already marked as active. It states:
      
      =====
      If the field Bytes to Transfer is not zero and the T-bit in the Alternate
      Next qTD Pointer is set to zero, then the host controller uses the
      Alternate Next qTD Pointer. Otherwise, the host controller uses the Next
      qTD Pointer. If Next qTD Pointer’s T-bit is set to a one, then the host
      controller exits this state and uses the horizontal pointer to the next
      schedule data structure.
      =====
      
      Hence, we must ensure that the alternate next QTD pointer's T-bit
      (TERMINATE) is set, so the EHCI controller knows to use the next QTD
      pointer.
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      2456b97f
  11. 18 Dec, 2013 2 commits
  12. 20 Oct, 2013 2 commits
  13. 27 Sep, 2013 1 commit
    • Julius Werner's avatar
      usb: ehci: Fix test mode for connected ports · 5077f96f
      Julius Werner authored
      
      
      The EHCI controller has some very specific requirements for the USB 2.0
      port test modes, which were not closely followed in the initial test
      mode commit. It demands that the host controller is completely shut down
      (all ports suspended, Run/Stop bit unset) when activating test mode, and
      will not work on an already enumerated port.
      
      This patch fixes that by introducing a new ehci_shutdown() function that
      closely follows the procedure listed in EHCI 4.14. Also, when we have
      such a function anyway, we might as well also use it in
      usb_lowlevel_stop() to make the normal host controller shutdown cleaner.
      Signed-off-by: default avatarJulius Werner <jwerner@chromium.org>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      5077f96f
  14. 29 Jul, 2013 2 commits
    • Nikita Kiryanov's avatar
      ehci-hcd: fix memory leak in lowlevel init · 8bc36036
      Nikita Kiryanov authored
      
      
      usb_lowlevel_init() allocates a new periodic_list each time it is invoked,
      without freeing the original list. Since it is initialized later on in the code,
      just reuse the first-allocated list in future invocations of usb_lowlevel_init.
      
      Cc: Marek Vasut <marex@denx.de>
      Cc: Igor Grinberg <grinberg@compulab.co.il>
      Signed-off-by: default avatarNikita Kiryanov <nikita@compulab.co.il>
      8bc36036
    • Marek Vasut's avatar
      usb: ehci: Split out struct ehci_ctrl definition · b959655f
      Marek Vasut authored
      
      
      Move the struct ehci_ctrl defition from ehci-hcd.c into ehci.h
      so it can be re-used by drivers. In particular, the mv_udc driver
      can benefit from this move.
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      b959655f
  15. 12 Jun, 2013 5 commits
    • Stephen Warren's avatar
      usb: ehci: add missing cache managment · d3e07478
      Stephen Warren authored
      Commit 8f62ca64
      
       "usb: ehci: Support interrupt transfers via periodic list"
      didn't include any cache management in the new interrupt transfer path.
      It also added an extra write to or_asynclistaddr in usb_lowlevel_init(),
      without having flushed out the data there.
      
      Add the missing cache management calls, so that the code works again.
      
      This allows the USB keyboard on Tegra's Seaboard/Springbank boards to
      work.
      
      Cc: Patrick Georgi <patrick@georgi-clan.de>
      Cc: Vincent Palatin <vpalatin@chromium.org>
      Cc: Julius Werner <jwerner@chromium.org>
      Cc: Simon Glass <sjg@chromium.org>
      Cc: Marek Vasut <marex@denx.de>
      Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
      d3e07478
    • Kuo-Jung Su's avatar
      usb: ehci: add Faraday USB 2.0 EHCI support · e82a316d
      Kuo-Jung Su authored
      
      
      This patch adds support to both Faraday FUSBH200 and FOTG210,
      the differences between Faraday EHCI and standard EHCI are
      listed bellow:
      
      1. The PORTSC starts at 0x30 instead of 0x44.
      2. The CONFIGFLAG(0x40) is not only un-implemented, and
         also has its address space removed.
      3. Faraday EHCI is a TDI design, but it doesn't
         compatible with the general TDI implementation
         found at both U-Boot and Linux.
      4. The ISOC descriptors differ from standard EHCI in
         several ways. But since U-boot doesn't support ISOC,
         we don't have to worry about that.
      Signed-off-by: default avatarKuo-Jung Su <dantesu@faraday-tech.com>
      CC: Marek Vasut <marex@denx.de>
      e82a316d
    • Kuo-Jung Su's avatar
      usb: ehci: add weak-aliased function for PORTSC · 1dde1423
      Kuo-Jung Su authored
      
      
      There is at least one non-EHCI compliant controller (i.e. Faraday EHCI)
      not only leave RESERVED and CONFIGFLAG registers un-implemented
      but also has their address spaces removed.
      
      As an result, the PORTSC register of Faraday EHCI always
      starts from 0x30 instead of 0x44 in standard EHCI.
      
      So that we'll need a weak-aliased function for abstraction.
      Signed-off-by: default avatarKuo-Jung Su <dantesu@faraday-tech.com>
      CC: Marek Vasut <marex@denx.de>
      1dde1423
    • Kuo-Jung Su's avatar
      usb: ehci: prevent bad PORTSC register access · 9c6a9d7c
      Kuo-Jung Su authored
      
      
      1. The 'index' of ehci_submit_root() is not always > 0.
      
         e.g.
         While it gets invoked from usb_get_descriptor(),
         the 'index' is always a '0'. (See ch.9 of USB2.0)
      
      2. The PORTSC register is not always required, and thus it
         should only report a port error when necessary.
         It would cause a port scan failure if the ehci_submit_root()
         always gets terminated by a port error.
      Signed-off-by: default avatarKuo-Jung Su <dantesu@faraday-tech.com>
      CC: Marek Vasut <marex@denx.de>
      9c6a9d7c
    • Simon Glass's avatar
      usb: Correct CLEAR_FEATURE code in ehci-hcd · ed10e66a
      Simon Glass authored
      This commit broke USB2 on link (Chromebook Pixel):
      
        020bbcb7
      
       usb: hub: Power-cycle on root-hub ports
      
      However the root cause seems to be a missing mask and missing 'break'
      in ehci-hcd.c. This patch fixes both.
      
      On link, 'usb start' with a USB keyboard and memory stick inserted now
      finds both. The keyboard works as expected. Also ext2ls shows a directory
      listing from the memory stick.
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
      ed10e66a
  16. 06 May, 2013 1 commit
  17. 05 May, 2013 2 commits
  18. 18 Mar, 2013 1 commit
  19. 16 Mar, 2013 1 commit
  20. 19 Nov, 2012 1 commit
    • Ilya Yanok's avatar
      usb: use linux/usb/ch9.h instead of usbdescriptors.h · c60795f4
      Ilya Yanok authored
      
      
      Linux usb/ch9.h seems to have all the same information (and more)
      as usbdescriptors.h so use the former instead of the later one.
      
      As a consequense of this change USB_SPEED_* values don't correspond
      directly to EHCI speed encoding anymore, I've added necessary
      recoding in EHCI driver. Also there is no point to put speed into
      pipe anymore so it's removed and a bunch of host drivers fixed to
      look at usb_device->speed instead.
      
      Old usbdescriptors.h included is not removed as it seems to be
      used by old USB device code.
      
      This makes usb.h and usbdevice.h incompatible. Fortunately the
      only place that tries to include both are the old MUSB code and
      it needs usb.h only for USB_DMA_MINALIGN used in aligned attribute
      on musb_regs structure but this attribute seems to be unneeded
      (old MUSB code doesn't support any DMA at all).
      Signed-off-by: default avatarIlya Yanok <ilya.yanok@cogentembedded.com>
      c60795f4
  21. 15 Oct, 2012 3 commits
  22. 20 Sep, 2012 1 commit
    • Lucas Stach's avatar
      usb: do explicit unaligned accesses · 93ad908c
      Lucas Stach authored
      
      
      usb_hub_descriptor has to be packed as it's used for
      communication with the device. Member wHubCharacteristics
      violates the natural alignment rules.
      
      Use explicit unaligned access functions for this member.
      Fixes ARMv7 traping while using USB.
      
      v2: fix typo found by Thomas Langer
      
      v3: rebased on top of u-boot-usb/master
      Signed-off-by: default avatarLucas Stach <dev@lynxeye.de>
      93ad908c