1. 23 9月, 2009 1 次提交
    • D
      USB: Work around BIOS bugs by quiescing USB controllers earlier · db8be50c
      David Woodhouse 提交于
      We are seeing a number of crashes in SMM, when VT-d is enabled while
      'Legacy USB support' is enabled in various BIOSes.
      
      The BIOS is supposed to indicate which addresses it uses for DMA in a
      special ACPI table ("RMRR"), so that we can punch a hole for it when we
      set up the IOMMU.
      
      The problem is, as usual, that BIOS engineers are totally incompetent.
      They write code which will crash if the DMA goes AWOL, and then they
      either neglect to provide an RMRR table at all, or they put the wrong
      addresses in it. And of course they don't do _any_ QA, since that would
      take too much time away from their crack-smoking habit.
      
      The real fix, of course, is for consumers to refuse to buy motherboards
      which only have closed-source firmware available. If we had _open_
      firmware, bugs like this would be easy to fix.
      
      Since that's something I can only dream about, this patch implements an
      alternative -- ensuring that the USB controllers are handed off from the
      BIOS and quiesced _before_ the IOMMU is initialised. That would have
      been a much better design than this RMRR nonsense in the first place, of
      course. The bootloader has no business doing DMA after the OS has booted
      anyway.
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      db8be50c
  2. 16 6月, 2009 1 次提交
    • S
      USB: xhci: BIOS handoff and HW initialization. · 66d4eadd
      Sarah Sharp 提交于
      Add PCI initialization code to take control of the xHCI host controller
      away from the BIOS, halt, and reset the host controller.  The xHCI spec
      says that BIOSes must give up the host controller within 5 seconds.
      
      Add some host controller glue functions to handle hardware initialization
      and memory allocation for the host controller.  The current xHCI
      prototypes use PCI interrupts, but the xHCI spec requires MSI-X
      interrupts.  Add code to support MSI-X interrupts, but use the PCI
      interrupts for now.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      66d4eadd
  3. 25 3月, 2009 1 次提交
  4. 08 1月, 2009 2 次提交
  5. 25 4月, 2008 1 次提交
  6. 02 2月, 2008 1 次提交
  7. 23 5月, 2007 1 次提交
  8. 13 7月, 2006 1 次提交
  9. 01 7月, 2006 1 次提交
  10. 15 4月, 2006 1 次提交
  11. 01 3月, 2006 1 次提交
  12. 14 2月, 2006 1 次提交
  13. 01 2月, 2006 1 次提交
    • D
      [PATCH] USB: fix EHCI early handoff issues · 401feafa
      David Brownell 提交于
      This moves the previously widely-used ehci-pci.c BIOS handoff
      code into the pci-quirks.c file, replacing the less widely used
      "early handoff" version that seems to cause problems lately.
      
      One notable change:  the "early handoff" version always enabled
      an SMI IRQ ... and did so even if the pre-Linux code said it was
      not using EHCI (and not expecting EHCI SMIs).  Looks like a goof
      in a workaround for some unknown BIOS version.
      
      This merged version only forcibly enables those IRQs when pre-Linux
      code says it's using EHCI.  And now it always forces them off "just
      in case".
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      401feafa
  14. 05 1月, 2006 1 次提交
  15. 05 11月, 2005 1 次提交
  16. 01 11月, 2005 1 次提交
  17. 29 10月, 2005 4 次提交
    • A
      [PATCH] USB: Always do usb-handoff · 478a3bab
      Alan Stern 提交于
      This revised patch (as586b) makes usb-handoff permanently true and no
      longer a kernel boot parameter.  It also removes the piix3_usb quirk code;
      that was nothing more than an early version of the USB handoff code
      (written at a time when Intel's PIIX3 was about the only motherboard with
      USB support).  And it adds identifiers for the three PCI USB controller
      classes to pci_ids.h.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      478a3bab
    • A
      [PATCH] UHCI: unify BIOS handoff and driver reset code · bb200f6e
      Alan Stern 提交于
      This patch (as574) updates the PCI BIOS usb-handoff code for UHCI
      controllers, making it work like the reset routines in uhci-hcd.  This
      allows uhci-hcd to drop its own routines in favor of the new ones
      (code-sharing).
      
      Once the patch is merged we can turn the usb-handoff option on
      permanently, as far as UHCI is concerned.  OHCI and EHCI may still have
      some issues.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      bb200f6e
    • D
      [PATCH] update PCI early-handoff handling for OHCI · f2cb36c1
      David Brownell 提交于
      The PCI "early usb handoff" quirk logic didn't work like "ohci-hcd" ...
      This patch makes it do so by:
      
        - Resetting the controller after kicking BIOS off, matching the
          normal "chip in hardware reset" startup mode;
      
        - Reporting any BIOS that borks this simple handoff; it's likely
          got a few other surprises for us too.
      
        - Ignoring that handoff on HPPA;
      
      The diagnostic string is mostly shared with EHCI, saving a few bytes.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
       drivers/usb/host/pci-quirks.c |   22 ++++++++++++++++++----
       1 file changed, 18 insertions(+), 4 deletions(-)
      f2cb36c1
    • D
      [PATCH] USB: move handoff code · 7586269c
      David Brownell 提交于
      This moves the PCI quirk handling for USB host controllers from the
      PCI directory to the USB directory.  Follow-on patches will need to:
      
      (a) merge these copies with the originals in the HCD reset methods.
      they don't wholly agree, despite doing the very same thing; and
      
      (b) eventually change it so "usb-handoff" is the default, to help
      get more robust USB/BIOS/input/... interactions.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
       drivers/Makefile              |    2
       drivers/pci/quirks.c          |  253 ---------------------------------------
       drivers/usb/Makefile          |    1
       drivers/usb/host/Makefile     |    5
       drivers/usb/host/pci-quirks.c |  272 ++++++++++++++++++++++++++++++++++++++++++
       5 files changed, 280 insertions(+), 253 deletions(-)
      7586269c