1. 28 5月, 2014 3 次提交
  2. 19 12月, 2013 2 次提交
  3. 09 12月, 2013 1 次提交
  4. 31 10月, 2013 2 次提交
  5. 01 8月, 2013 1 次提交
  6. 22 5月, 2013 1 次提交
  7. 17 5月, 2013 1 次提交
    • S
      USB: set device dma_mask without reference to global data · 3b9561e9
      Stephen Warren 提交于
      Many USB host drivers contain code such as:
      
      if (!pdev->dev.dma_mask)
              pdev->dev.dma_mask = &tegra_ehci_dma_mask;
      
      ... where tegra_ehci_dma_mask is a global. I suspect this code originated
      in commit 4a53f4e6 "USB: ehci-tegra: add probing through device tree" and
      was simply copied everywhere else.
      
      This works fine when the code is built-in, but can cause a crash when the
      code is in a module. The first module load sets up the dma_mask pointer,
      but if the module is removed and re-inserted, the value is now non-NULL,
      and hence is not updated to point at the new location, and hence points
      at a stale location within the previous module load address, which in
      turn causes a crash if the pointer is de-referenced.
      
      The simplest way of solving this seems to be to copy the code from
      ehci-platform.c, which uses the coherent_dma_mask as the target for the
      dma_mask pointer.
      Suggested-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Acked-by: NTony Prisk <linux@prisktech.co.nz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3b9561e9
  8. 09 4月, 2013 1 次提交
    • M
      USB: EHCI: make ehci-orion a separate driver · a76dd463
      Manjunath Goudar 提交于
      Separate the Orion host controller driver from ehci-hcd host
      code into its own driver module because of following reason.
      
      With the multiplatform changes in arm-soc tree, it becomes
      possible to enable the mvebu platform (which uses
      ehci-orion) at the same time as other platforms that require
      a conflicting EHCI bus glue. At the moment, this results
      in a warning like
      
      drivers/usb/host/ehci-hcd.c:1297:0: warning: "PLATFORM_DRIVER" redefined [enabled by default]
      drivers/usb/host/ehci-hcd.c:1277:0: note: this is the location of the previous definition
      drivers/usb/host/ehci-orion.c:334:31: warning: 'ehci_orion_driver' defined but not used [-Wunused-variable]
      
      and an ehci driver that only works on one of them.
      
      With the infrastructure added by Alan Stern in patch 3e023203
      "USB: EHCI: prepare to make ehci-hcd a library module", we can
      avoid this problem by turning a bus glue into a separate
      module, as we do here for the orion bus glue.
      
      An earlier version of this patch was included in 3.9 but caused
      a regression there, which has subsequently been fixed.
      
      While we are here, use the opportunity to disabiguate the two
      Marvell EHCI controller implementations in Kconfig.
      
      In V4 (arnd):
      - Improve Kconfig text
      
      In V3:
      - More detail provided in commit message regarding this patch.
      - Replaced hcd_name string "ehci-orion" into "orion-ehci".
      - MODULE_LICENSE is GPL v2.
      - In ehci_init_driver calling second argument passed  as NULL instead of
        ehci_orion_overrides because ehci_orion_overrides is removed.
      
      In V2:
      - Tegra patch related changes removed from this patch.
      Signed-off-by: NManjunath Goudar <manjunath.goudar@linaro.org>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NJason Cooper <jason@lakedaemon.net>
      Tested-by: NAndrew Lunn <andrew@lunn.ch>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a76dd463
  9. 16 3月, 2013 1 次提交
  10. 21 2月, 2013 1 次提交
  11. 16 2月, 2013 1 次提交
    • M
      USB: EHCI: make ehci-orion a separate driver · 6ed3c43d
      Manjunath Goudar 提交于
      With the multiplatform changes in arm-soc tree, it becomes
      possible to enable the mvebu platform (which uses
      ehci-orion) at the same time as other platforms that require
      a conflicting EHCI bus glue. At the moment, this results
      in a warning like
      
      drivers/usb/host/ehci-hcd.c:1297:0: warning: "PLATFORM_DRIVER" redefined [enabled by default]
      drivers/usb/host/ehci-hcd.c:1277:0: note: this is the location of the previous definition
      drivers/usb/host/ehci-orion.c:334:31: warning: 'ehci_orion_driver' defined but not used [-Wunused-variable]
      
      and an ehci driver that only works on one of them.
      
      With the infrastructure added by Alan Stern in patch 3e023203
      "USB: EHCI: prepare to make ehci-hcd a library module", we can
      avoid this problem by turning a bus glue into a separate
      module, as we do here for the orion bus glue.
      Signed-off-by: NManjunath Goudar <manjunath.goudar@linaro.org>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Andrew Lunn <andrew@lunn.ch>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6ed3c43d
  12. 04 1月, 2013 1 次提交
  13. 24 11月, 2012 1 次提交
  14. 22 11月, 2012 1 次提交
  15. 01 11月, 2012 1 次提交
    • A
      USB: EHCI: remove ehci_port_power() routine · c73cee71
      Alan Stern 提交于
      This patch (as1623) removes the ehci_port_power() routine and all the
      places that call it.  There's no reason for ehci-hcd to change the
      port power settings; the hub driver takes care of all that stuff.
      
      There is one exception: When the controller is resumed from
      hibernation or following a loss of power, the ports that are supposed
      to be handed over to a companion controller must be powered on first.
      Otherwise the handover won't work.  This process is not visible to the
      hub driver, so it has to be handled in ehci-hcd.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c73cee71
  16. 10 10月, 2012 1 次提交
    • A
      USB: EHCI: mark ehci_orion_conf_mbus_windows __devinit · 8855e49b
      Arnd Bergmann 提交于
      The __devinit section is going away soon, but while it's
      still there, we get a correct warning about
      ehci_orion_conf_mbus_windows being discarded before
      its caller, so it should be marked __devinit rather than
      __init.
      
      Without this patch, building dove_defconfig results in:
      
      WARNING: drivers/usb/host/built-in.o(.devinit.text+0x8a4): Section mismatch in reference from the function ehci_orion_drv_probe() to the function .init.text:ehci_orion_conf_mbus_windows()
      The function __devinit ehci_orion_drv_probe() references
      a function __init ehci_orion_conf_mbus_windows().
      If ehci_orion_conf_mbus_windows is only used by ehci_orion_drv_probe then
      annotate ehci_orion_conf_mbus_windows with a matching annotation.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: linux-usb@vger.kernel.org
      8855e49b
  17. 19 9月, 2012 1 次提交
  18. 25 7月, 2012 1 次提交
  19. 17 7月, 2012 1 次提交
  20. 10 7月, 2012 1 次提交
    • A
      EHCI: centralize controller initialization · 1a49e2ac
      Alan Stern 提交于
      This patch (as1564c) converts the EHCI platform drivers to use the
      central ehci_setup() routine for generic controller initialization
      rather than each having its own idiosyncratic approach.
      
      The major point of difficulty lies in ehci-pci's many vendor- and
      device-specific workarounds.  Some of them have to be applied before
      calling ehci_setup() and some after, which necessitates a fair amount
      of code motion.  The other platform drivers require much smaller
      changes.
      
      One point not addressed by the patch is whether ports should be
      powered on or off following initialization.  The different drivers
      appear to handle this pretty much at random.  In fact it shouldn't
      matter, because the hub driver turns on power to all ports when it
      binds to the root hub.  Straightening that out will be left for
      another day.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1a49e2ac
  21. 09 5月, 2012 1 次提交
  22. 14 12月, 2011 1 次提交
  23. 18 9月, 2011 1 次提交
  24. 04 5月, 2011 1 次提交
  25. 18 2月, 2011 1 次提交
  26. 03 3月, 2010 1 次提交
  27. 29 7月, 2009 1 次提交
    • S
      USB: ehci-orion: Call ehci_reset before ehci_halt · bcfa4e68
      Simon Kagstrom 提交于
      I noticed that USB initialization didn't setup correctly on my kirkwood
      based board (OpenRD base) if I hadn't initialized USB in U-boot first.
      The error message looks like this:
      
        ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
        orion-ehci orion-ehci.0: Marvell Orion EHCI
        orion-ehci orion-ehci.0: new USB bus registered, assigned bus number 1
        orion-ehci orion-ehci.0: can't setup
        orion-ehci orion-ehci.0: USB bus 1 deregistered
        orion-ehci orion-ehci.0: init orion-ehci.0 fail, -110
        orion-ehci: probe of orion-ehci.0 failed with error -110
      
      which is caused by ehci_halt() timing out in the handshake() call. I
      noticed that U-boot does a reset before calling handshake(), so this
      patch does the same thing for Linux. USB now works for me.
      Signed-off-by: NSimon Kagstrom <simon.kagstrom@netinsight.net>
      Acked-by: NNicolas Pitre <nico@marvell.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      bcfa4e68
  28. 13 7月, 2009 1 次提交
  29. 16 6月, 2009 2 次提交
    • A
      USB: EHCI: update toggle state for linked QHs · b18ffd49
      Alan Stern 提交于
      This patch (as1245) fixes a bug in ehci-hcd.  When an URB is queued
      for an endpoint whose QH is already in the LINKED state, the QH
      doesn't get refreshed.  As a result, if usb_clear_halt() was called
      during the time that the QH was linked but idle, the data toggle value
      in the QH doesn't get reset.
      
      The symptom is that after a clear_halt, data gets lost and transfers
      time out.  This problem is starting to show up now because the
      "ehci-hcd unlink speedups" patch causes QHs with no queued URBs to
      remain linked for a suitable time.
      
      The patch utilizes the new endpoint_reset mechanism to fix the
      problem.  When an endpoint is reset, the new method forcibly unlinks
      the QH (if necessary) and safely updates the toggle value.  This
      allows qh_update() to be simplified and avoids using usb_device's
      toggle bits in a rather unintuitive way.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      CC: David Brownell <david-b@pacbell.net>
      Tested-by: NDavid <david@unsolicited.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b18ffd49
    • U
      USB: move orion-ehci's probe function to .devinit.text · dc2f2b75
      Uwe Kleine-König 提交于
      A pointer to ehci_orion_drv_probe is passed to the core via
      platform_driver_register and so the function must not disappear when the
      .init sections are discarded.  Otherwise (if also having HOTPLUG=y)
      unbinding and binding a device to the driver via sysfs will result in an
      oops as does a device being registered late.
      
      An alternative to this patch is using platform_driver_probe instead of
      platform_driver_register plus removing the pointer to the probe function
      from the struct platform_driver.
      Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Cc: Ronen Shitrit <rshitrit@marvell.com>
      Cc: Lennert Buytenhek <buytenh@marvell.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: David Brownell <david-b@pacbell.net>
      Cc: Nicolas Pitre <nico@marvell.com>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Cc: Tzachi Perelstein <tzachi@marvell.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      dc2f2b75
  30. 04 12月, 2008 1 次提交
  31. 09 8月, 2008 1 次提交
  32. 22 7月, 2008 1 次提交
  33. 30 5月, 2008 2 次提交
    • A
      USB: EHCI: suppress unwanted error messages · 3a31155c
      Alan Stern 提交于
      This patch (as1096) fixes an annoying problem: When a full-speed or
      low-speed device is plugged into an EHCI controller, it fails to
      enumerate at high speed and then is handed over to the companion
      controller.  But usbcore logs a misleading and unwanted error message
      when the high-speed enumeration fails.
      
      The patch adds a new HCD method, port_handed_over, which asks whether
      a port has been handed over to a companion controller.  If it has, the
      error message is suppressed.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      CC: David Brownell <david-b@pacbell.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3a31155c
    • A
      USB: EHCI: fix up root-hub TT mess · a8e51775
      Alan Stern 提交于
      This patch (as1095) cleans up the HCD glue and several of the EHCI
      bus-glue files.  The ehci->is_tdi_rh_tt flag is redundant, since it
      means the same thing as the hcd->has_tt flag, so it is removed and the
      other flag used in its place.
      
      Some of the bus-glue files didn't get the relinquish_port method added
      to their hc_driver structures.  Although that routine currently
      doesn't do anything for controllers with an integrated TT, in the
      future it might.  So the patch adds it where it is missing.
      
      Lastly, some of the bus-glue files have erroneous entries for their
      hc_driver's suspend and resume methods.  These method pointers are
      specific to PCI and shouldn't be used otherwise.
      
      (The patch also includes an invisible whitespace fix.)
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Acked-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      a8e51775
  34. 21 5月, 2008 1 次提交