1. 29 7月, 2013 1 次提交
  2. 18 6月, 2013 6 次提交
  3. 30 5月, 2013 2 次提交
  4. 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
  5. 24 4月, 2013 1 次提交
    • A
      usb: phy: tegra: don't call into tegra-ehci directly · ee5d5499
      Arnd Bergmann 提交于
      Both phy-tegra-usb.c and ehci-tegra.c export symbols used by the other one,
      which does not work if one of them or both are loadable modules, resulting
      in an error like:
      
      drivers/built-in.o: In function `utmi_phy_clk_disable':
      drivers/usb/phy/phy-tegra-usb.c:302: undefined reference to `tegra_ehci_set_phcd'
      drivers/built-in.o: In function `utmi_phy_clk_enable':
      drivers/usb/phy/phy-tegra-usb.c:324: undefined reference to `tegra_ehci_set_phcd'
      drivers/built-in.o: In function `utmi_phy_power_on':
      drivers/usb/phy/phy-tegra-usb.c:447: undefined reference to `tegra_ehci_set_pts'
      
      This turns the interface into a one-way dependency by letting the tegra ehci
      driver pass two function pointers for callbacks that need to be called by
      the phy driver.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Venu Byravarasu <vbyravarasu@nvidia.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: Felipe Balbi <balbi@ti.com>
      Cc: Stephen Warren <swarren@nvidia.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ee5d5499
  6. 04 4月, 2013 2 次提交
  7. 22 3月, 2013 1 次提交
  8. 18 3月, 2013 1 次提交
  9. 29 1月, 2013 4 次提交
  10. 22 11月, 2012 1 次提交
  11. 15 11月, 2012 1 次提交
  12. 06 11月, 2012 1 次提交
  13. 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
  14. 25 10月, 2012 1 次提交
  15. 05 9月, 2012 1 次提交
  16. 11 8月, 2012 2 次提交
  17. 17 7月, 2012 2 次提交
  18. 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
  19. 02 7月, 2012 1 次提交
  20. 25 6月, 2012 2 次提交
  21. 12 6月, 2012 1 次提交
  22. 02 5月, 2012 2 次提交
    • S
      USB: ehci-tegra: remove redundant gpio_set_value · 04c235c9
      Stephen Warren 提交于
      The immediately preceding gpio_direction_output() already set the value,
      so there's no need to repeat it. This also prevents gpio_set_value() from
      WARNing when the GPIO is sleepable (e.g. is on an I2C expander); the set
      direction API is always sleepable, but plain set_value isn't.
      
      Cc: <stable@vger.kernel.org> # v3.3
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      04c235c9
    • A
      EHCI: update PM methods in ehci-tegra.c · ebf20de4
      Alan Stern 提交于
      This patch (as1547) rearranges the Power Management parts of the
      ehci-tegra driver to match the conventions used in other EHCI platform
      drivers.  In particular, the controller should not be powered down by
      the root hub's suspend routine; the controller's power level should be
      managed by the controller's own PM methods.
      
      The end result of the patch is that the standard ehci_bus_suspend()
      and ehci_bus_resume() methods can be used instead of special-purpose
      routines.  The driver now uses the standard dev_pm_ops methods instead
      of legacy power management.  Since there is no supported wakeup
      mechanism for the controller, runtime suspend is forbidden by default
      (this can be overridden via sysfs, if desired).
      
      These adjustments are needed in order to make ehci-tegra compatible
      with recent changes to the USB core.  The core now checks the root
      hub's status following bus suspend; if the controller is automatically
      powered down during bus suspend then the check will fail and the root
      hub will be resumed immediately.  Doing the controller power-down in a
      separate method avoids this problem.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Acked-by: NStephen Warren <swarren@wwwdotorg.org>
      Tested-by: NStephen Warren <swarren@wwwdotorg.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ebf20de4
  23. 26 4月, 2012 2 次提交
  24. 20 4月, 2012 1 次提交
  25. 19 4月, 2012 1 次提交