1. 18 9月, 2011 1 次提交
  2. 23 8月, 2011 1 次提交
    • A
      USB: EHCI: remove usages of hcd->state · e8799906
      Alan Stern 提交于
      This patch (as1483) improves the ehci-hcd driver family by getting rid
      of the reliance on the hcd->state variable.  It has no clear owner and
      it isn't protected by the usual HCD locks.  In its place, the patch
      adds a new, private ehci->rh_state field to record the state of the
      root hub.
      
      Along the way, the patch removes a couple of lines containing
      redundant assignments to the state variable.  Also, the QUIESCING
      state simply gets changed to the RUNNING state, because the driver
      doesn't make any distinction between them.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Acked-by: NJingoo Han <jg1.han@samsung.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      e8799906
  3. 10 6月, 2011 1 次提交
  4. 04 5月, 2011 1 次提交
  5. 03 5月, 2011 2 次提交
  6. 23 1月, 2011 1 次提交
    • P
      USB: ehci-fsl: Fix 'have_sysif_regs' detection · cc604ddd
      Peter Tyser 提交于
      Previously a check was done on an ID register at the base of a CPU's
      internal USB registers to determine if system interface regsiters were
      present.  The check looked for an ID register that had the format
      ID[0:5] == ~ID[8:13] as described in the MPC5121 User's Manual to
      determine if a MPC5121 or MPC83xx/85xx was being used.
      
      There are two issues with this method:
      - The ID register is not defined on the MPC83xx/85xx CPUs, so its
        unclear what is being checked on them.
      - Newer CPUs such as the P4080 also don't document the ID register, but
        do share the same format as the MPC5121.  Thus the previous code did
        not set 'have_sysif_regs' properly which results in the P4080 not
        properly initializing its USB ports.
      
      Using the device tree 'compatible' node is a cleaner way to determine if
      'have_sysif_regs' should be set and resolves the USB initialization issue
      seen on the P4080.
      
      Tested on a P4080-based system and compile tested on mpc512x_defconfig
      with Freescale EHCI driver enabled.
      
      Cc: Anatolij Gustschin <agust@denx.de>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      Cc: Kumar Gala <galak@kernel.crashing.org>
      Cc: linuxppc-dev@lists.ozlabs.org
      Signed-off-by: NPeter Tyser <ptyser@xes-inc.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      cc604ddd
  7. 23 10月, 2010 2 次提交
    • A
      USB: add USB EHCI support for MPC5121 SoC · 230f7ede
      Anatolij Gustschin 提交于
      Extends FSL EHCI platform driver glue layer to support
      MPC5121 USB controllers. MPC5121 Rev 2.0 silicon EHCI
      registers are in big endian format. The appropriate flags
      are set using the information in the platform data structure.
      MPC83xx system interface registers are not available on
      MPC512x, so the access to these registers is isolated in
      MPC512x case. Furthermore the USB controller clocks
      must be enabled before 512x register accesses which is
      done by providing platform specific init callback.
      
      The MPC512x internal USB PHY doesn't provide supply voltage.
      For boards using different power switches allow specifying
      DRVVBUS and PWR_FAULT signal polarity of the MPC5121 internal
      PHY using "fsl,invert-drvvbus" and "fsl,invert-pwr-fault"
      properties in the device tree USB nodes. Adds documentation
      for this new device tree bindings.
      Signed-off-by: NAnatolij Gustschin <agust@denx.de>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      230f7ede
    • M
      USB: ehci tdi : let's tdi_reset set host mode · 65fd4272
      Matthieu CASTET 提交于
      tdi_reset is already taking care of setting host mode for tdi devices.
      Don't duplicate code in platform driver.
      
      Make ehci_halt a nop if the controller is not in host mode (otherwise it 
      will fail), and let's ehci_reset do the tdi_reset.
      We need to move hcd->has_tt flags before ehci_halt, in order ehci_halt 
      knows we are a tdi device.
      
      
      Before the setup routine was doing :
      - put controller in host mode
      - ehci_halt
      - ehci_init
      - hcd->has_tt = 1;
      - ehci_reset
      
      Now we do :
      - hcd->has_tt = 1;
      - ehci_halt
      - ehci_init
      - ehci_reset
      
      PS : now we handle correctly the device -> host transition.
      Signed-off-by: NMatthieu CASTET <matthieu.castet@parrot.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      65fd4272
  8. 11 8月, 2010 1 次提交
  9. 21 5月, 2010 1 次提交
    • A
      USB: EHCI: fix controller wakeup flag settings during suspend · 16032c4f
      Alan Stern 提交于
      This patch (as1380) fixes a bug in the wakeup settings for EHCI host
      controllers.  When the controller is suspended, if it isn't enabled
      for remote wakeup then we have to turn off all the port wakeup flags.
      Disabling PCI PME# isn't good enough, because some systems (Intel)
      evidently use alternate wakeup signalling paths.
      
      In addition, the patch improves the handling of the Intel Moorestown
      hardware by performing various power-up and power-down delays just
      once instead of once for each port (i.e., the delays are moved outside
      of the port loops).  This requires extra code, but the total delay
      time is reduced.
      
      There are also a few additional minor cleanups.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Reported-by: NOndrej Zary <linux@rainbow-software.org>
      CC: Alek Du <alek.du@intel.com>
      CC: stable <stable@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      16032c4f
  10. 03 3月, 2010 2 次提交
  11. 13 7月, 2009 1 次提交
  12. 16 6月, 2009 1 次提交
    • 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
  13. 22 7月, 2008 2 次提交
  14. 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
  15. 25 4月, 2008 1 次提交
    • D
      USB: ehci minor SOC bus glue fixes · 135db048
      David Brownell 提交于
      Various minor fixes to some SOC bus glue for EHCI:
      
       - Remove a bogus copyright (by "me"!) which someone added to the FSL
         driver, and an irrelevant comment.
      
       - Un-break MODULE_ALIAS() directives after platform_bus hotplugging
         acquired a backwards-incompatible change.  (Which didn't fix ANY
         of the in-tree drivers it prevented from hotplugging -- sigh.)
      
       - Remove some bogus assignments of platform_bus_type; that's done by
         the platform_bus code.
      
       - Add some FIXMEs for drivers with that pointless two-level idiom for
         probe() and remove() routines.  ("Obfuscation" is a non-goal.)
         That should help avoid future bus glue which copies that idiom.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      135db048
  16. 02 2月, 2008 2 次提交
  17. 18 12月, 2007 1 次提交
  18. 13 7月, 2007 1 次提交
    • L
      USB: ehci_fsl update for MPC831x support · ba02978a
      Li Yang 提交于
      For MPC831x support, change the ehci-fsl driver to preserve
      bits set in platform code.  Add a common CONFIG_USB_EHCI_FSL
      to indicate presence of Freescale EHCI SOC.  Add FSL_USB2_DR_OTG
      operating mode support, thus both host and device can work for the
      mini-ab receptacle.  Note: this doesn't enable OTG protocol
      support.
      Signed-off-by: NLi Yang <leoli@freescale.com>
      Cc: David Brownell <david-b@pacbell.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ba02978a
  19. 24 5月, 2007 1 次提交
  20. 08 2月, 2007 1 次提交
  21. 28 9月, 2006 1 次提交
    • A
      USB: Properly unregister reboot notifier in case of failure in ehci hcd · 64a21d02
      Aleksey Gorelov 提交于
      If some problem occurs during ehci startup, for instance, request_irq fails,
      echi hcd driver tries it best to cleanup, but fails to unregister reboot
      notifier, which in turn leads to crash on reboot/poweroff.
      
      The following patch resolves this problem by not using reboot notifiers
      anymore, but instead making ehci/ohci driver get its own shutdown method.  For
      PCI, it is done through pci glue, for everything else through platform driver
      glue.
      
      One downside: sa1111 does not use platform driver stuff, and does not have its
      own shutdown hook, so no 'shutdown' is called for it now.  I'm not sure if it
      is really necessary on that platform, though.
      Signed-off-by: NAleks Gorelov <dared1st@yahoo.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: David Brownell <david-b@pacbell.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      64a21d02
  22. 03 7月, 2006 1 次提交
  23. 22 6月, 2006 1 次提交
  24. 21 3月, 2006 3 次提交