Skip to content

Commit

Permalink
[PATCH] PCI: quirk for IBM Dock II cardbus controllers
Browse files Browse the repository at this point in the history
The IBM Dock II cardbus bridges require some extra configuration
before Yenta is loaded in order to setup the Interrupts to be
routed properly.

Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Kristen Accardi authored and Greg Kroah-Hartman committed Mar 23, 2006
1 parent e3ac86d commit c408a37
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions drivers/pci/quirks.c
Original file line number Diff line number Diff line change
Expand Up @@ -1242,6 +1242,33 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXH_1, quirk_pc
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXHV, quirk_pcie_pxh);


/*
* Fixup the cardbus bridges on the IBM Dock II docking station
*/
static void __devinit quirk_ibm_dock2_cardbus(struct pci_dev *dev)
{
u32 val;

/*
* tie the 2 interrupt pins to INTA, and configure the
* multifunction routing register to handle this.
*/
if ((dev->subsystem_vendor == PCI_VENDOR_ID_IBM) &&
(dev->subsystem_device == 0x0148)) {
printk(KERN_INFO "PCI: Found IBM Dock II Cardbus Bridge "
"applying quirk\n");
pci_read_config_dword(dev, 0x8c, &val);
val = ((val & 0xffffff00) | 0x1002);
pci_write_config_dword(dev, 0x8c, val);
pci_read_config_dword(dev, 0x80, &val);
val = ((val & 0x00ffff00) | 0x2864c077);
pci_write_config_dword(dev, 0x80, val);
}
}

DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_1420,
quirk_ibm_dock2_cardbus);

static void __devinit quirk_netmos(struct pci_dev *dev)
{
unsigned int num_parallel = (dev->subsystem_device & 0xf0) >> 4;
Expand Down

0 comments on commit c408a37

Please sign in to comment.