1. 25 4月, 2008 1 次提交
  2. 13 10月, 2007 1 次提交
    • M
      USB: OHCI handles more ZFMicro quirks · 89a0fd18
      Mike Nuss 提交于
      The ZF Micro OHCI controller exhibits unexpected behavior that seems to be
      related to high load.  Under certain conditions, the controller will
      complete a TD, remove it from the endpoint's queue, and fail to add it to
      the donelist. This causes the endpoint to appear to stop responding. Worse,
      if the device is removed while in that state, OHCI will hang while waiting
      for the orphaned TD to complete.  The situation is not recoverable without
      rebooting.
      
      This fix enhances the scope of the existing OHCI_QUIRK_ZFMICRO flag:
      
       1. A watchdog routine periodically scans the OHCI structures to check
          for orphaned TDs. In these cases the TD is taken back from the
          controller and completed normally.
      
       2. If a device is removed while the endpoint is hung but before the
          watchdog catches the situation, any outstanding TDs are taken back
          from the controller in the 'sanitize' phase.
      
      The ohci-hcd driver used to print "INTR_SF lossage" in this situation;
      this changes it to the universally accurate "ED unlink timeout".  Other
      instances of this message presumably have different root causes.
      
      Both this Compaq quirk and a NEC quirk are now properly compiled out for
      non-PCI builds of this driver.
      Signed-off-by: NMike Nuss <mike@terascala.com>
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      89a0fd18
  3. 13 7月, 2007 2 次提交
    • M
      USB: Fix NEC OHCI chip silicon bug · d576bb9f
      Michael Hanselmann 提交于
      This patch fixes a silicon bug in some NEC OHCI chips. The bug appears
      at random times and is very, very difficult to reproduce. Without the
      following patch, Linux would shut the chip and its associated devices
      down. In Apple PowerBooks this leads to an unusable keyboard and mouse
      (SSH still working). The idea of restarting the chip is taken from
      public Darwin code.
      Signed-off-by: NMichael Hanselmann <linux-kernel@hansmi.ch>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      d576bb9f
    • A
      USB: EHCI, OHCI: handover changes · 383975d7
      Alan Stern 提交于
      This patch (as887) changes the way ehci-hcd and ohci-hcd handle a loss
      of VBUS power during suspend.  In order for the USB-persist facility
      to work correctly, it is necessary for low- and full-speed devices
      attached to a high-speed port to be handed back to the companion
      controller during resume processing.
      
      This entails three changes: adding code to ehci-hcd to perform the
      handover, removing code from ohci-hcd to turn off ports during
      root-hub reinit, and adding code to ohci-hcd to turn on ports during
      PCI controller resume.  (Other bus glue resume methods for platforms
      supporting high-speed controllers would need a similar change, if any
      existed.)
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      383975d7
  4. 23 5月, 2007 1 次提交
  5. 28 4月, 2007 2 次提交
  6. 08 2月, 2007 3 次提交
  7. 21 12月, 2006 1 次提交
  8. 29 9月, 2006 1 次提交
  9. 28 9月, 2006 2 次提交
    • 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
    • D
      USB: OHCI avoids root hub timer polling · d413984a
      David Brownell 提交于
      This teaches OHCI to use the root hub status change (RHSC) IRQ, bypassing
      root hub timers most of the time and switching over to the "new" root hub
      polling scheme.  It's complicated by the fact that implementations of OHCI
      trigger and ack that IRQ differently (the spec is vague there).
      
      Avoiding root hub timers helps mechanisms like "dynamic tick" leave the
      CPU in lowpower modes for longer intervals.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      d413984a
  10. 26 9月, 2006 1 次提交
  11. 28 4月, 2006 1 次提交
  12. 21 3月, 2006 1 次提交
    • D
      [PATCH] USB: ohci uses driver model wakeup flags · 6a9062f3
      David Brownell 提交于
      This makes OHCI use the driver model wakeup control bits for its root hub
      (e.g. disable on amd756, because of chip erratum) and for the controller
      itself.  It no longer uses the hcd glue bits with those roles, and depends
      on the previous patch making the root hub available earlier.
      
      Note that on most platforms (boot code properly setting the RWC bit) this
      gives a partial workaround for the way PCI isn't currently flagging devices
      that support PME# signals.  (Because of odd PCI init sequencing on PPC.)
      That's because many OHCI controllers support "legacy PCI PM" ... without
      involving any PCI PM capability.
      
      USB wakeup from STR, if it works on your system, may still involve
      tweaking things by hand in /proc/acpi/wakeup.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      6a9062f3
  13. 30 11月, 2005 1 次提交
    • B
      [PATCH] USB: Fix USB suspend/resume crasher (#2) · 8de98402
      Benjamin Herrenschmidt 提交于
      This patch closes the IRQ race and makes various other OHCI & EHCI code
      path safer vs. suspend/resume.
      I've been able to (finally !) successfully suspend and resume various
      Mac models, with or without USB mouse plugged, or plugging while asleep,
      or unplugging while asleep etc... all without a crash.
      
      Alan, please verify the UHCI bit I did, I only verified that it builds.
      It's very simple so I wouldn't expect any issue there. If you aren't
      confident, then just drop the hunks that change uhci-hcd.c
      
      I also made the patch a little bit more "safer" by making sure the store
      to the interrupt register that disables interrupts is not posted before
      I set the flag and drop the spinlock.
      
      Without this patch, you cannot reliably sleep/wakeup any recent Mac, and
      I suspect PCs have some more sneaky issues too (they don't frankly crash
      with machine checks because x86 tend to silently swallow PCI errors but
      that won't last afaik, at least PCI Express will blow up in those
      situations, but the USB code may still misbehave).
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      8de98402
  14. 24 11月, 2005 1 次提交
  15. 11 11月, 2005 1 次提交
  16. 31 10月, 2005 1 次提交
    • T
      [PATCH] fix missing includes · 4e57b681
      Tim Schmielau 提交于
      I recently picked up my older work to remove unnecessary #includes of
      sched.h, starting from a patch by Dave Jones to not include sched.h
      from module.h. This reduces the number of indirect includes of sched.h
      by ~300. Another ~400 pointless direct includes can be removed after
      this disentangling (patch to follow later).
      However, quite a few indirect includes need to be fixed up for this.
      
      In order to feed the patches through -mm with as little disturbance as
      possible, I've split out the fixes I accumulated up to now (complete for
      i386 and x86_64, more archs to follow later) and post them before the real
      patch.  This way this large part of the patch is kept simple with only
      adding #includes, and all hunks are independent of each other.  So if any
      hunk rejects or gets in the way of other patches, just drop it.  My scripts
      will pick it up again in the next round.
      Signed-off-by: NTim Schmielau <tim@physik3.uni-rostock.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4e57b681
  17. 29 10月, 2005 5 次提交
    • B
      [PATCH] USB: add owner initialisation to host drivers · efa400db
      Ben Dooks 提交于
      Add .owner initialisation to the device drivers
      in drivers/usb/host so that when built as module
      the device_driver refers to the owning module
      Signed-off-by: NBen Dooks <ben-linux@fluff.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      efa400db
    • A
      [PATCH] USB: Rename hcd->hub_suspend to hcd->bus_suspend · 0c0382e3
      Alan Stern 提交于
      This patch (as580) is perhaps the only result from the long discussion I
      had with David about his changes to the root-hub suspend/resume code.  It
      renames the hub_suspend and hub_resume methods in struct usb_hcd to
      bus_suspend and bus_resume.  These are more descriptive names, since the
      methods really do suspend or resume an entire USB bus, and less likely to
      be confused with the hub_suspend and hub_resume routines in hub.c.
      
      It also takes David's advice about removing the layer of bus glue, where
      those methods are called.  And it implements a related change that David
      made to the other HCDs but forgot to put into dummy_hcd.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      0c0382e3
    • D
      [PATCH] OHCI PM updates · f197b2c5
      David Brownell 提交于
      This simplifies the OHCI root hub suspend logic:
      
       - Uses new usbcore root hub calls to make autosuspend work again:
      	* Uses a newish usbcore root hub wakeup mechanism,
      	  making requests to khubd not keventd.
      	* Uses an even newer sibling suspend hook.
      
       - Expect someone always made usbcore call ohci_hub_suspend() before bus
         glue fires; and that ohci_hub_resume() is only called after that bus
         glue ran.  Previously, only CONFIG_USB_SUSPEND promised those things.
         (Includes updates to PCI and OMAP bus glue.)
      
       - Handle a not-noticed-before special case during resume from one of
         the swsusp snapshots when using "usb-handoff":  the controller isn't
         left in RESET state.  (A bug to fix in the usb-handoff code...)
      
      Also cleans up a minor debug printk glitch, and switches an mdelay over
      to an msleep (how did that stick around for so long?).
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
       drivers/usb/host/ohci-dbg.c  |    4 ----
       drivers/usb/host/ohci-hcd.c  |    2 +-
       drivers/usb/host/ohci-hub.c  |   42 ++++++++++++------------------------------
       drivers/usb/host/ohci-mem.c  |    1 -
       drivers/usb/host/ohci-omap.c |   36 ++++++++++++------------------------
       drivers/usb/host/ohci-pci.c  |   40 ++++++++--------------------------------
       drivers/usb/host/ohci.h      |    1 -
       7 files changed, 33 insertions(+), 93 deletions(-)
      f197b2c5
    • D
      [PATCH] remove some USB_SUSPEND dependencies · 8ad7fe16
      David Brownell 提交于
      This simplifies some of the PM-related #ifdeffing by recognizing
      that USB_SUSPEND depends on PM.  Also, OHCI drivers were often
      testing for USB_SUSPEND when they should have tested just PM.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
       drivers/usb/core/hcd.c          |    2 ++
       drivers/usb/host/ohci-hcd.c     |    2 +-
       drivers/usb/host/ohci-hub.c     |    4 ++--
       drivers/usb/host/ohci-omap.c    |    2 +-
       drivers/usb/host/ohci-pci.c     |    2 +-
       drivers/usb/host/ohci-ppc-soc.c |    4 ++--
       drivers/usb/host/ohci-pxa27x.c  |    2 +-
       drivers/usb/host/ohci-s3c2410.c |    3 +--
       drivers/usb/host/ohci-sa1111.c  |    2 +-
       9 files changed, 12 insertions(+), 11 deletions(-)
      8ad7fe16
    • D
      [PATCH] remove usb_suspend_device() parameter · 390a8c34
      David Brownell 提交于
      This patch removes the extra usb_suspend_device() parameter.  The original
      reason to pass that parameter was so that this routine could suspend any
      active children.  A previous patch removed that functionality ... leaving
      no reason to pass the parameter.  A close analogy is pci_set_power_state,
      which doesn't need a pm_message_t either.
      
      On the internal code path that comes through the driver model, the parameter
      is now used to distinguish cases where USB devices need to "freeze" but not
      suspend.   It also checks for an error case that's accessible through sysfs:
      attempting to suspend a device before its interfaces (or for hubs, ports).
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
       drivers/usb/core/hub.c         |   34 +++++++++++++++++++++-------------
       drivers/usb/core/usb.c         |   23 +++++++++++++++++++++--
       drivers/usb/host/ehci-hcd.c    |    2 +-
       drivers/usb/host/isp116x-hcd.c |    2 +-
       drivers/usb/host/ohci-pci.c    |    2 +-
       include/linux/usb.h            |    2 +-
       6 files changed, 46 insertions(+), 19 deletions(-)
      390a8c34
  18. 28 6月, 2005 1 次提交
  19. 19 4月, 2005 2 次提交
  20. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4