pci: acpi: add _DSM method to PCI devices
commitb7f23f62e40bb7bc87fe170471a31ab1fb8a0784
authorIgor Mammedov <imammedo@redhat.com>
Mon, 15 Mar 2021 18:01:01 +0000 (15 14:01 -0400)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 22 Mar 2021 22:58:19 +0000 (22 18:58 -0400)
tree9f81ee3135a6872fa31f5eeae1ba47d0f637cc7f
parent910e4069710d854757c8fe8921dcff5b62dcd960
pci: acpi: add _DSM method to PCI devices

Implement _DSM according to:
    PCI Firmware Specification 3.1
    4.6.7.  DSM for Naming a PCI or PCI Express Device Under
            Operating Systems
and wire it up to cold and hot-plugged PCI devices.
Feature depends on ACPI hotplug being enabled (as that provides
PCI devices descriptions in ACPI and MMIO registers that are
reused to fetch acpi-index).

acpi-index should work for
  - cold plugged NICs:
      $QEMU -device e1000,acpi-index=100
         => 'eno100'
  - hot-plugged
      (monitor) device_add e1000,acpi-index=200,id=remove_me
         => 'eno200'
  - re-plugged
      (monitor) device_del remove_me
      (monitor) device_add e1000,acpi-index=1
         => 'eno1'

Windows also sees index under "PCI Label Id" field in properties
dialog but otherwise it doesn't seem to have any effect.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20210315180102.3008391-6-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/i386/acpi-build.c
include/hw/acpi/pci.h