From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54062) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aBJOA-0003Tj-KN for qemu-devel@nongnu.org; Tue, 22 Dec 2015 04:37:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aBJO3-00006T-2h for qemu-devel@nongnu.org; Tue, 22 Dec 2015 04:37:46 -0500 Received: from mx1.redhat.com ([209.132.183.28]:44945) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aBJO2-00006J-Rb for qemu-devel@nongnu.org; Tue, 22 Dec 2015 04:37:43 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id 7D13414A83 for ; Tue, 22 Dec 2015 09:37:42 +0000 (UTC) Date: Tue, 22 Dec 2015 11:37:40 +0200 From: "Michael S. Tsirkin" Message-ID: <20151222113548-mutt-send-email-mst@redhat.com> References: <1449704528-289297-1-git-send-email-imammedo@redhat.com> <1449704528-289297-55-git-send-email-imammedo@redhat.com> <20151219222828-mutt-send-email-mst@redhat.com> <20151221163523.0a35870b@nial.brq.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151221163523.0a35870b@nial.brq.redhat.com> Subject: Re: [Qemu-devel] [PATCH 54/74] pc: acpi: move remaining GPE handlers into SSDT List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov Cc: qemu-devel@nongnu.org On Mon, Dec 21, 2015 at 04:35:23PM +0100, Igor Mammedov wrote: > On Sat, 19 Dec 2015 22:34:55 +0200 > "Michael S. Tsirkin" wrote: > > > On Thu, Dec 10, 2015 at 12:41:48AM +0100, Igor Mammedov wrote: > > > Signed-off-by: Igor Mammedov > > > --- > > > hw/i386/acpi-build.c | 26 +++++++++++++++++++++++++- > > > hw/i386/acpi-dsdt.dsl | 40 ---------------------------------------- > > > hw/i386/q35-acpi-dsdt.dsl | 36 ------------------------------------ > > > 3 files changed, 25 insertions(+), 77 deletions(-) > > > > > > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c > > > index 581ad98..99c0294 100644 > > > --- a/hw/i386/acpi-build.c > > > +++ b/hw/i386/acpi-build.c > > > @@ -1400,8 +1400,25 @@ build_ssdt(GArray *table_data, GArray *linker, > > > build_memory_hotplug_aml(ssdt, nr_mem, pm->mem_hp_io_base, > > > pm->mem_hp_io_len); > > > > > > - scope = aml_scope("\\_GPE"); > > > + scope = aml_scope("_GPE"); > > > { > > > + aml_append(scope, aml_name_decl("_HID", aml_string("ACPI0006"))); > > > + > > > + method = aml_method("_L00", 0, AML_NOTSERIALIZED); > > > + aml_append(scope, method); > > > + > > > + if (misc->is_piix4) { > > > + method = aml_method("_E01", 0, AML_NOTSERIALIZED); > > > + aml_append(method, > > > + aml_acquire(aml_name("\\_SB.PCI0.BLCK"), 0xFFFF)); > > > + aml_append(method, aml_call0("\\_SB.PCI0.PCNT")); > > > + aml_append(method, aml_release(aml_name("\\_SB.PCI0.BLCK"))); > > > + aml_append(scope, method); > > > + } else { > > > + method = aml_method("_L01", 0, AML_NOTSERIALIZED); > > > + aml_append(scope, method); > > > + } > > > + > > > method = aml_method("_E02", 0, AML_NOTSERIALIZED); > > > aml_append(method, aml_call0("\\_SB." CPU_SCAN_METHOD)); > > > aml_append(scope, method); > > > @@ -1409,6 +1426,13 @@ build_ssdt(GArray *table_data, GArray *linker, > > > method = aml_method("_E03", 0, AML_NOTSERIALIZED); > > > aml_append(method, aml_call0(MEMORY_HOTPLUG_HANDLER_PATH)); > > > aml_append(scope, method); > > > + > > > + for (i = 4; i <= 0xF; i++) { > > > + char *name = g_strdup_printf("_L0%X", i); > > > + method = aml_method(name, 0, AML_NOTSERIALIZED); > > > + aml_append(scope, method); > > > + g_free(name); > > > + } > > > > How about we make aml_method accept ... format instead? > actually instead of making aml_method(format,...) it would be > easier to make it accept Aml* so we could reuse aml_name(format,...) > in the end it would look like: > > Aml gpe_name = aml_name("_L0%X", i); > aml_method(gpe_name, AML_NOTSERIALIZED); > > in addition name object could be reused in other places > that reference that method. Except most methods are simple, so maybe do both APIs. Avoiding string duplication is a good idea, but using string constants works just as well. -- MST