diff options
author | Igor Mammedov <imammedo@redhat.com> | 2022-07-01 09:35:13 -0400 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2022-10-09 16:38:46 -0400 |
commit | 87debd32a8e0fe272135d50ffe52b9287ccbdbd7 (patch) | |
tree | 037bc1589cc41fa510cfa4751537e0473c0a2c83 /hw | |
parent | 166cff2b8fa428ec411dd4beea98d8c4aa07f76d (diff) | |
download | qemu-87debd32a8e0fe272135d50ffe52b9287ccbdbd7.zip qemu-87debd32a8e0fe272135d50ffe52b9287ccbdbd7.tar.gz qemu-87debd32a8e0fe272135d50ffe52b9287ccbdbd7.tar.bz2 |
x86: pci: acpi: reorder Device's _DSM method
align _DSM method in empty slot descriptor with
a populated slot position.
Expected change:
+ Device (SE8)
+ {
+ Name (_ADR, 0x001D0000) // _ADR: Address
+ Name (ASUN, 0x1D)
Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method
{
Local0 = Package (0x02)
{
BSEL,
ASUN
}
Return (PDSM (Arg0, Arg1, Arg2, Arg3, Local0))
}
- }
- Device (SE8)
- {
- Name (_ADR, 0x001D0000) // _ADR: Address
- Name (ASUN, 0x1D)
Name (_SUN, 0x1D) // _SUN: Slot User Number
Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device
{
PCEJ (BSEL, _SUN)
}
+ }
i.e. put _DSM right after ASUN, with _SUN/_EJ0 following it.
that will eliminate contextual changes (causing test failures)
when follow up patches merge code generating populated and empty
slots descriptors.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20220701133515.137890-16-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/i386/acpi-build.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 6342467..fc23cb0 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -444,15 +444,13 @@ static void build_append_pci_bus_devices(Aml *parent_scope, PCIBus *bus, dev = aml_device("S%.02X", devfn); aml_append(dev, aml_name_decl("_ADR", aml_int(adr))); aml_append(dev, aml_name_decl("ASUN", aml_int(slot))); + aml_append(dev, aml_pci_device_dsm()); aml_append(dev, aml_name_decl("_SUN", aml_int(slot))); method = aml_method("_EJ0", 1, AML_NOTSERIALIZED); aml_append(method, aml_call2("PCEJ", aml_name("BSEL"), aml_name("_SUN")) ); aml_append(dev, method); - - aml_append(dev, aml_pci_device_dsm()); - aml_append(parent_scope, dev); build_append_pcihp_notify_entry(notify_method, slot); |