path: root/qapi/common.json
diff options
authorAlex Williamson <alex.williamson@redhat.com>2018-12-12 12:38:55 -0700
committerMichael S. Tsirkin <mst@redhat.com>2018-12-19 16:48:16 -0500
commit727b48661f757678f7f42f557ddac072c5a49721 (patch)
treede53e2008065ef215cebec27d794e93a4d97f7fb /qapi/common.json
parentd96a0ac71c7a2332a00da1a496eae6bcb9948502 (diff)
pci: Sync PCIe downstream port LNKSTA on read
The PCIe link speed and width between a downstream device and its upstream port is negotiated on real hardware and susceptible to dynamic changes due to signal issues and power management. In the emulated device case there is no real hardware link, but we still might wish to have some consistency between endpoint and downstream port via a virtual negotiation. There is of course a real link for assigned devices and this same virtual negotiation allows the downstream port to match the endpoint, synchronizing on every read to support underlying physical hardware dynamically adjusting the link. This negotiation is intentionally unidirectional for compatibility. If the endpoint exceeds the capabilities of the downstream port or there is no endpoint device, the downstream port reports negotiation to its maximum speed and width, matching the previous case where negotiation was absent. De-tuning the endpoint to match a virtual link doesn't seem to benefit anyone and is a condition we've thus far reported without functional issues. Note that PCI_EXP_LNKSTA is already ignored for migration compatibility via pcie_cap_v1_fill(). Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> Tested-by: Geoffrey McRae <geoff@hostfission.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Signed-off-by: Alex Williamson <alex.williamson@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'qapi/common.json')
0 files changed, 0 insertions, 0 deletions