diff options
author | Steve French <sfrench@us.ibm.com> | 2007-02-07 00:30:38 +0000 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-02-07 00:30:38 +0000 |
commit | 1d9564ea0ac72ef7c4068d66fe42ad23af4ff53f (patch) | |
tree | fa63b4c1bbd775252f71d05fef4de6a904eb4448 /drivers/pci/quirks.c | |
parent | 87f440e70e07dace7db130f2f9fcea3f132aad8f (diff) | |
parent | dda2ac15d23b38e4335e858848aa8c9a6710304f (diff) | |
download | talos-op-linux-1d9564ea0ac72ef7c4068d66fe42ad23af4ff53f.tar.gz talos-op-linux-1d9564ea0ac72ef7c4068d66fe42ad23af4ff53f.zip |
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'drivers/pci/quirks.c')
-rw-r--r-- | drivers/pci/quirks.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 16945c2ba2ca..c913ea4e545c 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -661,9 +661,11 @@ static void quirk_via_bridge(struct pci_dev *dev) /* See what bridge we have and find the device ranges */ switch (dev->device) { case PCI_DEVICE_ID_VIA_82C686: - /* 82C686 is special */ - via_vlink_dev_lo = 7; - via_vlink_dev_hi = 7; + /* The VT82C686 is special, it attaches to PCI and can have + any device number. All its subdevices are functions of + that single device. */ + via_vlink_dev_lo = PCI_SLOT(dev->devfn); + via_vlink_dev_hi = PCI_SLOT(dev->devfn); break; case PCI_DEVICE_ID_VIA_8237: case PCI_DEVICE_ID_VIA_8237A: @@ -1260,8 +1262,8 @@ static void quirk_jmicron_dualfn(struct pci_dev *pdev) pci_read_config_dword(pdev, 0x40, &conf); /* Enable dual function mode, AHCI on fn 0, IDE fn1 */ /* Set the class codes correctly and then direct IDE 0 */ - conf &= ~0x000F0200; /* Clear bit 9 and 16-19 */ - conf |= 0x00C20002; /* Set bit 1, 17, 22, 23 */ + conf &= ~0x000FF200; /* Clear bit 9 and 12-19 */ + conf |= 0x00C2A102; /* Set 1, 8, 13, 15, 17, 22, 23 */ pci_write_config_dword(pdev, 0x40, conf); /* Reconfigure so that the PCI scanner discovers the |