[xhci] Record device-specific quirks in xHCI device structure

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/36/head
Michael Brown 2015-06-18 15:05:54 +01:00
parent 6b7157c233
commit 323bf186fb
2 changed files with 6 additions and 3 deletions

View File

@ -3197,6 +3197,7 @@ static int xhci_probe ( struct pci_device *pci ) {
goto err_alloc;
}
xhci->name = pci->dev.name;
xhci->quirks = pci->id->driver_data;
/* Fix up PCI device */
adjust_pci_device ( pci );
@ -3218,7 +3219,7 @@ static int xhci_probe ( struct pci_device *pci ) {
xhci_legacy_claim ( xhci );
/* Fix Intel PCH-specific quirks, if applicable */
if ( pci->id->driver_data & XHCI_PCH )
if ( xhci->quirks & XHCI_PCH )
xhci_pch_fix ( xhci, pci );
/* Reset device */
@ -3254,7 +3255,7 @@ static int xhci_probe ( struct pci_device *pci ) {
err_alloc_bus:
xhci_reset ( xhci );
err_reset:
if ( pci->id->driver_data & XHCI_PCH )
if ( xhci->quirks & XHCI_PCH )
xhci_pch_undo ( xhci, pci );
xhci_legacy_release ( xhci );
iounmap ( xhci->regs );
@ -3276,7 +3277,7 @@ static void xhci_remove ( struct pci_device *pci ) {
unregister_usb_bus ( bus );
free_usb_bus ( bus );
xhci_reset ( xhci );
if ( pci->id->driver_data & XHCI_PCH )
if ( xhci->quirks & XHCI_PCH )
xhci_pch_undo ( xhci, pci );
xhci_legacy_release ( xhci );
iounmap ( xhci->regs );

View File

@ -1038,6 +1038,8 @@ struct xhci_device {
void *regs;
/** Name */
const char *name;
/** Quirks */
unsigned int quirks;
/** Capability registers */
void *cap;