aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/quirks.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pci/quirks.c')
-rw-r--r--drivers/pci/quirks.c12
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)
661 /* See what bridge we have and find the device ranges */ 661 /* See what bridge we have and find the device ranges */
662 switch (dev->device) { 662 switch (dev->device) {
663 case PCI_DEVICE_ID_VIA_82C686: 663 case PCI_DEVICE_ID_VIA_82C686:
664 /* 82C686 is special */ 664 /* The VT82C686 is special, it attaches to PCI and can have
665 via_vlink_dev_lo = 7; 665 any device number. All its subdevices are functions of
666 via_vlink_dev_hi = 7; 666 that single device. */
667 via_vlink_dev_lo = PCI_SLOT(dev->devfn);
668 via_vlink_dev_hi = PCI_SLOT(dev->devfn);
667 break; 669 break;
668 case PCI_DEVICE_ID_VIA_8237: 670 case PCI_DEVICE_ID_VIA_8237:
669 case PCI_DEVICE_ID_VIA_8237A: 671 case PCI_DEVICE_ID_VIA_8237A:
@@ -1260,8 +1262,8 @@ static void quirk_jmicron_dualfn(struct pci_dev *pdev)
1260 pci_read_config_dword(pdev, 0x40, &conf); 1262 pci_read_config_dword(pdev, 0x40, &conf);
1261 /* Enable dual function mode, AHCI on fn 0, IDE fn1 */ 1263 /* Enable dual function mode, AHCI on fn 0, IDE fn1 */
1262 /* Set the class codes correctly and then direct IDE 0 */ 1264 /* Set the class codes correctly and then direct IDE 0 */
1263 conf &= ~0x000F0200; /* Clear bit 9 and 16-19 */ 1265 conf &= ~0x000FF200; /* Clear bit 9 and 12-19 */
1264 conf |= 0x00C20002; /* Set bit 1, 17, 22, 23 */ 1266 conf |= 0x00C2A102; /* Set 1, 8, 13, 15, 17, 22, 23 */
1265 pci_write_config_dword(pdev, 0x40, conf); 1267 pci_write_config_dword(pdev, 0x40, conf);
1266 1268
1267 /* Reconfigure so that the PCI scanner discovers the 1269 /* Reconfigure so that the PCI scanner discovers the