From: Igor Mammedov <imammedo@redhat.com>
To: qemu-devel@nongnu.org
Cc: mst@redhat.com, ani@anisinha.ca, berrange@redhat.com
Subject: [PATCH 13/33] pcihp: move PCI _DSM function 0 prolog into separate function
Date: Fri, 24 Feb 2023 16:37:52 +0100 [thread overview]
Message-ID: <20230224153812.4176226-14-imammedo@redhat.com> (raw)
In-Reply-To: <20230224153812.4176226-1-imammedo@redhat.com>
it will be reused by follow up patches that will implement
static _DSM for non-hotpluggable devices.
no functional AML change, only context one, where 'cap' (Local1)
initialization is moved after UUID/revision checks.
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
hw/i386/acpi-build.c | 54 ++++++++++++++++++++++++--------------------
1 file changed, 30 insertions(+), 24 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index c0674ae2d1..cb80b7a318 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -372,6 +372,33 @@ Aml *aml_pci_device_dsm(void)
return method;
}
+static void build_append_pci_dsm_func0_common(Aml *ctx, Aml *retvar)
+{
+ Aml *UUID, *ifctx1;
+ uint8_t byte_list[1] = { 0 }; /* nothing supported yet */
+
+ aml_append(ctx, aml_store(aml_buffer(1, byte_list), retvar));
+ /*
+ * PCI Firmware Specification 3.1
+ * 4.6. _DSM Definitions for PCI
+ */
+ UUID = aml_touuid("E5C937D0-3553-4D7A-9117-EA4D19C3434D");
+ ifctx1 = aml_if(aml_lnot(aml_equal(aml_arg(0), UUID)));
+ {
+ /* call is for unsupported UUID, bail out */
+ aml_append(ifctx1, aml_return(retvar));
+ }
+ aml_append(ctx, ifctx1);
+
+ ifctx1 = aml_if(aml_lless(aml_arg(1), aml_int(2)));
+ {
+ /* call is for unsupported REV, bail out */
+ aml_append(ifctx1, aml_return(retvar));
+ }
+ aml_append(ctx, ifctx1);
+}
+
+
static void build_append_pcihp_notify_entry(Aml *method, int slot)
{
Aml *if_ctx;
@@ -569,14 +596,13 @@ static bool build_append_notfication_callback(Aml *parent_scope,
static Aml *aml_pci_pdsm(void)
{
- Aml *method, *UUID, *ifctx, *ifctx1;
+ Aml *method, *ifctx, *ifctx1;
Aml *ret = aml_local(0);
Aml *caps = aml_local(1);
Aml *acpi_index = aml_local(2);
Aml *zero = aml_int(0);
Aml *one = aml_int(1);
Aml *func = aml_arg(2);
- Aml *rev = aml_arg(1);
Aml *params = aml_arg(4);
Aml *bnum = aml_derefof(aml_index(params, aml_int(0)));
Aml *sunum = aml_derefof(aml_index(params, aml_int(1)));
@@ -586,29 +612,9 @@ static Aml *aml_pci_pdsm(void)
/* get supported functions */
ifctx = aml_if(aml_equal(func, zero));
{
- uint8_t byte_list[1] = { 0 }; /* nothing supported yet */
- aml_append(ifctx, aml_store(aml_buffer(1, byte_list), ret));
- aml_append(ifctx, aml_store(zero, caps));
-
- /*
- * PCI Firmware Specification 3.1
- * 4.6. _DSM Definitions for PCI
- */
- UUID = aml_touuid("E5C937D0-3553-4D7A-9117-EA4D19C3434D");
- ifctx1 = aml_if(aml_lnot(aml_equal(aml_arg(0), UUID)));
- {
- /* call is for unsupported UUID, bail out */
- aml_append(ifctx1, aml_return(ret));
- }
- aml_append(ifctx, ifctx1);
-
- ifctx1 = aml_if(aml_lless(rev, aml_int(2)));
- {
- /* call is for unsupported REV, bail out */
- aml_append(ifctx1, aml_return(ret));
- }
- aml_append(ifctx, ifctx1);
+ build_append_pci_dsm_func0_common(ifctx, ret);
+ aml_append(ifctx, aml_store(zero, caps));
aml_append(ifctx,
aml_store(aml_call2("AIDX", bnum, sunum), acpi_index));
/*
--
2.39.1
next prev parent reply other threads:[~2023-02-24 15:40 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-24 15:37 [PATCH 00/33] pci(pc/q35): acpi-index support on non-hotpluggable slots Igor Mammedov
2023-02-24 15:37 ` [PATCH 01/33] tests: acpi: whitelist new q35.noacpihp test and pc.hpbrroot Igor Mammedov
2023-02-24 15:37 ` [PATCH 02/33] tests: acpi: add test_acpi_q35_tcg_no_acpi_hotplug test and extend test_acpi_piix4_no_acpi_pci_hotplug Igor Mammedov
2023-02-24 15:37 ` [PATCH 03/33] tests: acpi: update expected blobs Igor Mammedov
2023-02-24 15:37 ` [PATCH 04/33] tests: acpi: whitelist q35/DSDT.multi-bridge before extending testcase Igor Mammedov
2023-02-24 15:37 ` [PATCH 05/33] tests: acpi: extend multi-bridge case with case 'root-port, id=HOHP, hotplug=off root-port, bus=NOHP' Igor Mammedov
2023-02-24 15:37 ` [PATCH 06/33] x86: pcihp: fix missing PCNT callchain when intermediate root-port has 'hotplug=off' set Igor Mammedov
2023-02-24 15:37 ` [PATCH 07/33] tests: acpi: whitelist pc/DSDT.hpbrroot and pc/DSDT.hpbridge tests Igor Mammedov
2023-02-24 15:37 ` [PATCH 08/33] x86: pcihp: fix missing bridge AML when intermediate root-port has 'hotplug=off' set Igor Mammedov
2023-02-24 15:37 ` [PATCH 09/33] tests: acpi: update expected blobs Igor Mammedov
2023-02-24 15:37 ` [PATCH 10/33] pcihp: piix4: do not redirect hotplug controller to piix4 when ACPI hotplug is disabled Igor Mammedov
2023-02-24 15:37 ` [PATCH 11/33] pci: fix 'hotplugglable' property behavior Igor Mammedov
2023-02-24 15:37 ` [PATCH 12/33] tests: acpi: whitelist DSDT blobs before isolating PCI _DSM func 0 prolog Igor Mammedov
2023-02-24 15:37 ` Igor Mammedov [this message]
2023-02-24 15:37 ` [PATCH 14/33] tests: acpi: update expected blobs Igor Mammedov
2023-03-02 0:27 ` Michael S. Tsirkin
2023-03-02 12:02 ` Igor Mammedov
2023-03-02 12:55 ` Fabiano Rosas
2023-03-02 14:57 ` Igor Mammedov
2023-03-02 15:43 ` Fabiano Rosas
2023-03-02 15:59 ` Igor Mammedov
2023-03-02 0:37 ` Michael S. Tsirkin
2023-02-24 15:37 ` [PATCH 15/33] tests: acpi: whitelist DSDT before adding EDSM method Igor Mammedov
2023-02-24 15:37 ` [PATCH 16/33] acpi: pci: add EDSM method to DSDT Igor Mammedov
2023-02-24 15:37 ` [PATCH 17/33] tests: acpi: update expected blobs Igor Mammedov
2023-02-24 15:37 ` [PATCH 18/33] tests: acpi: whitelist DSDT before adding device with acpi-index to testcases Igor Mammedov
2023-02-24 15:37 ` [PATCH 19/33] tests: acpi: add device with acpi-index on non-hotpluggble bus Igor Mammedov
2023-02-24 15:37 ` [PATCH 20/33] acpi: pci: support acpi-index for non-hotpluggable devices Igor Mammedov
2023-02-24 15:38 ` [PATCH 21/33] tests: acpi: update expected blobs Igor Mammedov
2023-02-24 15:38 ` [PATCH 22/33] tests: acpi: whitelist DSDT before exposing non zero functions Igor Mammedov
2023-02-24 15:38 ` [PATCH 23/33] acpi: pci: describe all functions on populated slots Igor Mammedov
2023-02-24 15:38 ` [PATCH 24/33] tests: acpi: update expected blobs Igor Mammedov
2023-02-24 15:38 ` [PATCH 25/33] tests: acpi: whitelist DSDT before adding non-0 function device with acpi-index to testcases Igor Mammedov
2023-02-24 15:38 ` [PATCH 26/33] tests: acpi: add non zero function device with acpi-index on non-hotpluggble bus Igor Mammedov
2023-02-24 15:38 ` [PATCH 27/33] tests: acpi: update expected blobs Igor Mammedov
2023-02-24 15:38 ` [PATCH 28/33] pci: move acpi-index uniqueness check to generic PCI device code Igor Mammedov
2023-02-24 15:38 ` [PATCH 29/33] acpi: pci: drop BSEL usage when deciding that device isn't hotpluggable Igor Mammedov
2023-02-24 15:38 ` [PATCH 30/33] acpi: pci: move BSEL into build_append_pcihp_slots() Igor Mammedov
2023-02-24 15:38 ` [PATCH 31/33] acpi: pci: move out ACPI PCI hotplug generator from generic slot generator build_append_pci_bus_devices() Igor Mammedov
2023-02-24 15:38 ` [PATCH 32/33] pcihp: move fields enabling hotplug into AcpiPciHpState Igor Mammedov
2023-02-24 15:38 ` [PATCH 33/33] pcihp: add ACPI PCI hotplug specific is_hotpluggable_bus() callback Igor Mammedov
2023-03-02 10:59 ` [PATCH 00/33] pci(pc/q35): acpi-index support on non-hotpluggable slots Michael S. Tsirkin
2023-03-02 12:05 ` Jonathan Cameron via
2023-03-02 12:07 ` Igor Mammedov
2023-03-02 23:21 ` Michael S. Tsirkin
2023-03-06 10:49 ` Igor Mammedov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230224153812.4176226-14-imammedo@redhat.com \
--to=imammedo@redhat.com \
--cc=ani@anisinha.ca \
--cc=berrange@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).