View | Details | Raw Unified | Return to bug 177471
Collapse All | Expand All

(-)a/drivers/pci/quirks.c (+21 lines)
Lines 4318-4323 static int pci_quirk_enable_intel_spt_pch_acs(struct pci_dev *dev) Link Here
4318
	return 0;
4318
	return 0;
4319
}
4319
}
4320
4320
4321
static int pci_quirk_enable_norr_acs(struct pci_dev *dev)
4322
{
4323
	int pos;
4324
	u16 cap,ctrl;
4325
4326
	pos = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ACS);
4327
	if (!pos)
4328
		return;
4329
4330
	pci_read_config_word(dev, pos + PCI_ACS_CAP, &cap);
4331
	pci_read_config_word(dev, pos + PCI_ACS_CTRL, &ctrl);
4332
4333
	/* Same as pci_std_enable_acs() minus PCI_ACS_RR */
4334
	ctrl |= (cap & PCI_ACS_SV);
4335
	ctrl |= (cap & PCI_ACS_CR);
4336
	ctrl |= (cap & PCI_ACS_UF);
4337
4338
	pci_write_config_word(dev, pos + PCI_ACS_CTRL, ctrl);
4339
}
4340
4321
static const struct pci_dev_enable_acs {
4341
static const struct pci_dev_enable_acs {
4322
	u16 vendor;
4342
	u16 vendor;
4323
	u16 device;
4343
	u16 device;
Lines 4325-4330 static int pci_quirk_enable_intel_spt_pch_acs(struct pci_dev *dev) Link Here
4325
} pci_dev_enable_acs[] = {
4345
} pci_dev_enable_acs[] = {
4326
	{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_enable_intel_pch_acs },
4346
	{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_enable_intel_pch_acs },
4327
	{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_enable_intel_spt_pch_acs },
4347
	{ PCI_VENDOR_ID_INTEL, PCI_ANY_ID, pci_quirk_enable_intel_spt_pch_acs },
4348
	{ 0x12d8, 0x2404, pci_quirk_enable_norr_acs },
4328
	{ 0 }
4349
	{ 0 }
4329
};
4350
};
4330
4351

Return to bug 177471