diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2014-08-25 18:49:25 +0100 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2014-08-25 18:49:25 +0100 |
| commit | a44a12b78a7e9a3dc59e5b10b09a0bc934c693f1 (patch) | |
| tree | cb3321d309b92bd15082518574ede30aa18010bc /hw/pci/pcie.c | |
| parent | 3dd359c2d34c6abf385d58da863f337b39702585 (diff) | |
| parent | 187de915e8d06aaf82be206aebc551c82bf0670c (diff) | |
| download | focaccia-qemu-a44a12b78a7e9a3dc59e5b10b09a0bc934c693f1.tar.gz focaccia-qemu-a44a12b78a7e9a3dc59e5b10b09a0bc934c693f1.zip | |
Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging
pci, pc fixes, features A bunch of bugfixes - these will make sense for 2.1.1 ACPI support for TPM and partial ARI support for PCIE. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> # gpg: Signature made Sun 24 Aug 2014 23:16:35 BST using RSA key ID D28D5469 # gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" # gpg: aka "Michael S. Tsirkin <mst@redhat.com>" * remotes/mst/tags/for_upstream: pcie: fix trailing whitespace ioh3420: Enable ARI forwarding ioh3420: Remove obsoleted, unused ioh3420_init function pcie: Rename the pcie_cap_ari_* functions to pcie_cap_arifwd_* pcie: Fix incorrect write to the ari capability next function field ssdt-tpm: add generated hex file to git Add ACPI tables for TPM pc: reserve more memory for ACPI for new machine types pcihp: fix possible array out of bounds pci_bridge: manually destroy memory regions within PCIBridgeWindows hostmem: set MPOL_MF_MOVE Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/pci/pcie.c')
| -rw-r--r-- | hw/pci/pcie.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index a123c01ef1..1babddff4d 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -497,9 +497,10 @@ void pcie_cap_flr_write_config(PCIDevice *dev, } } -/* Alternative Routing-ID Interpretation (ARI) */ -/* ari forwarding support for down stream port */ -void pcie_cap_ari_init(PCIDevice *dev) +/* Alternative Routing-ID Interpretation (ARI) + * forwarding support for root and downstream ports + */ +void pcie_cap_arifwd_init(PCIDevice *dev) { uint32_t pos = dev->exp.exp_cap; pci_long_test_and_set_mask(dev->config + pos + PCI_EXP_DEVCAP2, @@ -508,13 +509,13 @@ void pcie_cap_ari_init(PCIDevice *dev) PCI_EXP_DEVCTL2_ARI); } -void pcie_cap_ari_reset(PCIDevice *dev) +void pcie_cap_arifwd_reset(PCIDevice *dev) { uint8_t *devctl2 = dev->config + dev->exp.exp_cap + PCI_EXP_DEVCTL2; pci_long_test_and_clear_mask(devctl2, PCI_EXP_DEVCTL2_ARI); } -bool pcie_cap_is_ari_enabled(const PCIDevice *dev) +bool pcie_cap_is_arifwd_enabled(const PCIDevice *dev) { if (!pci_is_express(dev)) { return false; @@ -630,5 +631,5 @@ void pcie_ari_init(PCIDevice *dev, uint16_t offset, uint16_t nextfn) { pcie_add_capability(dev, PCI_EXT_CAP_ID_ARI, PCI_ARI_VER, offset, PCI_ARI_SIZEOF); - pci_set_long(dev->config + offset + PCI_ARI_CAP, PCI_ARI_CAP_NFN(nextfn)); + pci_set_long(dev->config + offset + PCI_ARI_CAP, (nextfn & 0xff) << 8); } |