1. 21 5月, 2010 2 次提交
  2. 23 4月, 2010 1 次提交
  3. 17 2月, 2010 1 次提交
  4. 21 1月, 2010 1 次提交
  5. 12 12月, 2009 1 次提交
  6. 23 9月, 2009 4 次提交
  7. 16 6月, 2009 1 次提交
  8. 08 1月, 2009 2 次提交
    • V
      USB: powerpc: Workaround for the PPC440EPX USBH_23 errata [take 3] · 796bcae7
      Vitaly Bordug 提交于
      A published errata for ppc440epx states, that when running Linux with
      both EHCI and OHCI modules loaded, the EHCI module experiences a fatal
      error when a high-speed device is connected to the USB2.0, and
      functions normally if OHCI module is not loaded.
      
      There used to be recommendation to use only hi-speed or full-speed
      devices with specific conditions, when respective module was unloaded.
      Later, it was observed that ohci suspend is enough to keep things
      going, and it was turned into workaround, as explained below.
      
      Quote from original descriprion:
      
      The 440EPx USB 2.0 Host controller is an EHCI compliant controller.  In
      USB 2.0 Host controllers, each EHCI controller has one or more companion
      controllers, which may be OHCI or UHCI.  An USB 2.0 Host controller will
      contain one or more ports.  For each port, only one of the controllers
      is connected at any one time. In the 440EPx, there is only one OHCI
      companion controller, and only one USB 2.0 Host port.
      All ports on an USB 2.0 controller default to the companion
      controller.  If you load only an ohci driver, it will have control of
      the ports and any deviceplugged in will operate, although high speed
      devices will be forced to operate at full speed.  When an ehci driver
      is loaded, it explicitly takes control of the ports.  If there is a
      device connected, and / or every time there is a new device connected,
      the ehci driver determines if the device is high speed or not.  If it
      is high speed, the driver retains control of the port.  If it is not,
      the driver explicitly gives the companion controller control of the
      port.
      
      The is a software workaround that uses
      Initial version of the software workaround was posted to
      linux-usb-devel:
      
      http://www.mail-archive.com/linux-usb-devel@lists.sourceforge.net/msg54019.html
      
      and later available from amcc.com:
      http://www.amcc.com/Embedded/Downloads/download.html?cat=1&family=15&ins=2
      
      The patch below is generally based on the latter, but reworked to
      powerpc/of_device USB drivers, and uses a few devicetree inquiries to
      get rid of (some) hardcoded defines.
      Signed-off-by: NVitaly Bordug <vitb@kernel.crashing.org>
      Signed-off-by: NStefan Roese <sr@denx.de>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      796bcae7
    • V
      USB: Avoid 20ms delay in EHCI resume · 3a4e72cb
      Vikram Pandita 提交于
      For function ehci_bus_resume()
      - Added flag resume_needed
        No need to wait for 20ms if no port was suspended
      
      - Change mdelay to msleep
      
      - release and reacquire the spinlock around mdelay
      Signed-off-by: Nvikram pandita <vikram.pandita@ti.com>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3a4e72cb
  9. 18 10月, 2008 1 次提交
  10. 30 5月, 2008 2 次提交
  11. 29 4月, 2008 2 次提交
  12. 25 4月, 2008 5 次提交
    • A
      USB: fix compile problems in ehci-hcd · aff6d18f
      Alan Stern 提交于
      This patch (as1072) fixes some recently-introduced compile problems
      that show up in ehci-hcd when CONFIG_PM is turned off.
      
      	PORT_WAKE_BITS needs to be defined always.
      
      	ehci_port_power() is called during initialization by all the
      	EHCI variants other than the PCI version, in which it is
      	"defined but not used".  So add a call to it.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      aff6d18f
    • A
      USB: HCDs use the do_remote_wakeup flag · 58a97ffe
      Alan Stern 提交于
      When a USB device is suspended, whether or not it is enabled for
      remote wakeup depends on the device_may_wakeup() setting.  The setting
      is then saved in the do_remote_wakeup flag.
      
      Later on, however, the device_may_wakeup() value can change because of
      user activity.  So when testing whether a suspended device is or
      should be enabled for remote wakeup, we should always test
      do_remote_wakeup instead of device_may_wakeup().  This patch (as1076)
      makes that change for root hubs in several places.
      
      The patch also adjusts uhci-hcd so that when an autostopped controller
      is suspended, the remote wakeup setting agrees with the value recorded
      in the root hub's do_remote_wakeup flag.
      
      And the patch adjusts ehci-hcd so that wakeup events on selectively
      suspended ports (i.e., the bus itself isn't suspended) don't turn on
      the PME# wakeup signal.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      58a97ffe
    • D
      USB: ehci: minor cleanups · 9776afc8
      David Brownell 提交于
      Minor cleanups to the EHCI code:  revision history is what source
      code repositories should have.  Switch to a more standard way to
      kick in verbose debugging -- don't be EHCI-specific.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      9776afc8
    • A
      USB: remove CONFIG_USB_PERSIST setting · feccc30d
      Alan Stern 提交于
      This patch (as1047) removes the USB_PERSIST Kconfig option, enabling
      it permanently.  It also prevents the power/persist attribute from
      being created for hub devices; there's no point in having it since
      USB-PERSIST is always turned on for hubs.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      feccc30d
    • A
      USB: EHCI: carry out port handover during each root-hub resume · 3bb1af52
      Alan Stern 提交于
      This patch (as1044) causes EHCI port handover for non-high-speed
      devices to occur during every root-hub resume, not just in cases where
      the controller lost power or was reset.  This is necessary because:
      
      	When some machines go into suspend, they remove power from
      	on-board USB devices while retaining suspend current for USB
      	controllers.
      
      	The user might well unplug a USB device while the system is
      	suspended and then plug it back in before resuming.
      
      A corresponding change is made to the core resume routine; now
      high-speed root hubs will always be resumed when the system wakes up,
      even if they were suspended before the system went to sleep.  If this
      weren't done then EHCI port handover wouldn't work, since it is called
      when the EHCI root hub is resumed.
      
      Finally, a comment is added to the hub driver explaining the khubd has
      to be freezable; if it weren't frozen then it could interfere with
      port handover.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3bb1af52
  13. 03 4月, 2008 1 次提交
  14. 02 2月, 2008 6 次提交
  15. 20 10月, 2007 1 次提交
  16. 13 7月, 2007 4 次提交
  17. 28 4月, 2007 1 次提交
  18. 10 3月, 2007 1 次提交
  19. 17 2月, 2007 1 次提交
  20. 08 2月, 2007 2 次提交
    • A
      EHCI: fix interrupt-driven remote wakeup · 629e4427
      Alan Stern 提交于
      Now that port status change notifications are interrupt-driven,
      ehci-hcd needs to tell usbcore when a remote-wakeup resume operation
      is finished -- we can no longer rely on the core to poll and find
      out.  This patch (as843) uses the root-hub status timer to force a
      poll after the resume is complete.
      
      The patch also changes the test for detecting when the TDRSMDN resume
      period has expired.  It's necessary to use time_after_eq() instead of
      time_after(), since the polling is triggered precisely by a timer.
      The same change is made for TDRSTR reset expiration, for consistency.
      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>
      
      629e4427
    • A
      EHCI: force high-speed devices to run at full speed · 57e06c11
      Alan Stern 提交于
      This patch (as710) adds a sysfs class-device attribute file named
      "companion" for EHCI controllers.  The file contains a list of port
      numbers that are dedicated to the companion controller; by writing a
      port number to the file the user can force a high-speed device
      attached directly to the computer to run at full speed.  (As far as I
      know it is not possible to do this for a device attached to an
      external hub.)  A port is removed from the file by writing the
      negative of its port number.
      
      Several users have asked for this facility and it seems like a useful
      thing to have.  Every now and then one runs across a device which
      behaves much better at full speed than at high speed.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      57e06c11