mirror of
https://github.com/torvalds/linux.git
synced 2024-11-08 21:21:47 +00:00
PCI: Preserve MPS and MRRS when applying _HPX settings
Linux manages MPS and MRRS settings to keep them consistent across the PCIe fabric. BIOS doesn't participate in this Linux management, so ignore that part of any _HPX settings it supplies. Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Yinghai Lu <yinghai@kernel.org>
This commit is contained in:
parent
ca0647e08a
commit
302328c003
@ -1301,6 +1301,16 @@ static void program_hpp_type2(struct pci_dev *dev, struct hpp_type2 *hpp)
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Don't allow _HPX to change MPS or MRRS settings. We manage
|
||||
* those to make sure they're consistent with the rest of the
|
||||
* platform.
|
||||
*/
|
||||
hpp->pci_exp_devctl_and |= PCI_EXP_DEVCTL_PAYLOAD |
|
||||
PCI_EXP_DEVCTL_READRQ;
|
||||
hpp->pci_exp_devctl_or &= ~(PCI_EXP_DEVCTL_PAYLOAD |
|
||||
PCI_EXP_DEVCTL_READRQ);
|
||||
|
||||
/* Initialize Device Control Register */
|
||||
pcie_capability_clear_and_set_word(dev, PCI_EXP_DEVCTL,
|
||||
~hpp->pci_exp_devctl_and, hpp->pci_exp_devctl_or);
|
||||
|
Loading…
Reference in New Issue
Block a user